我现在很郁闷。在过去的半小时里,我一直在努力让 event delegation
工作。我尝试使用 .on
,Chrome 告诉我这不是一个函数。
我搜索了这个问题
$(...).on is not a function - jQuery Error
并认为这是因为我使用的是早期版本的 JQuery。因此,我决定从 Google Developer 的网站中包含最新版本的 JQuery
https://developers.google.com/speed/libraries/
这是我在 body
标签末尾添加的内容
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
我以为这样就可以解决问题了
如果我单击 View Source (Ctrl + u)
下的链接并单击 JQuery 文件,我将获得源代码,这使我相信它已正确加载。
我还尝试使用 .live
函数,但发现它也不是一个函数。我也几乎不可能有语法错误
$("td > a")[0].on("click", function() { alert('hi') })
然而,我从控制台得到以下输出
Uncaught TypeError: $(...)[0].on is not a function at :2:16 at Object.InjectedScript._evaluateOn (:895:140) at Object.InjectedScript._evaluateAndWrap (:828:34) at Object.InjectedScript.evaluate (:694:21)
我还尝试将缩小的 JQuery 代码复制并粘贴到 JavaScript 文件中,并以这种方式包含在内,但同样失败。
是内容分发网络(CDN)
的问题还是版本本身的问题?
我知道 JQuery 2
只支持现代浏览器,但我使用的是 Google Chrome
。我不明白问题出在哪里。
有没有其他人遇到过这个问题?非常感谢帮助或建议。
编辑:
`jquery.fn.jquery` returns `2.1.3`
最佳答案
您正在尝试将 jQuery 方法应用于原始 DOM 对象。使用指定的索引,您不再选择 jQuery 对象。
另外,您构建on()
函数的方式没有使用事件委托(delegate)。试试这个:
$(document).on("td > a:eq(0)", "click", function() { alert('hi') });
关于javascript - .on 或 .live 函数均未被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30761330/