我现在非常沮丧。过去半小时我一直试图让event delegation
工作。我尝试使用.on
,Chrome告诉我它不是一个功能。
我搜索了这个问题
$(...).on is not a function - jQuery Error
并认为这是因为我使用的是早期版本的JQuery。因此,我决定从Google Developer's网站
中包含最新版本的JQueryhttps://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') })
然而,我从控制台获得以下输出
未捕获的TypeError:$(...)[0] .on不是函数 时间:2:16 at Object.InjectedScript._evaluateOn(:895:140) at Object.InjectedScript._evaluateAndWrap(:828:34) at Object.InjectedScript.evaluate(:694:21)
我还尝试将缩小的JQuery代码复制并粘贴到JavaScript文件中,包括这种方式,但也失败了。
是Content Distribution Network(CDN)
的问题还是版本本身的问题?
我知道JQuery 2
仅支持现代浏览器,但我使用Google Chrome
。我无法理解问题所在。
之前还有其他人遇到过这个问题吗?非常感谢帮助或建议。
编辑:
`jquery.fn.jquery` returns `2.1.3`
答案 0 :(得分:3)
您尝试将jQuery方法应用于原始DOM对象。指定索引后,您不再选择jQuery对象。
此外,您构建on()
功能的方式并未使用事件委派。试试这个:
$(document).on("td > a:eq(0)", "click", function() { alert('hi') });