无法识别.on或.live功能

时间:2015-06-10 15:52:42

标签: javascript jquery console developer-tools

我现在非常沮丧。过去半小时我一直试图让event delegation工作。我尝试使用.on,Chrome告诉我它不是一个功能。

我搜索了这个问题

$(...).on is not a function - jQuery Error

并认为这是因为我使用的是早期版本的JQuery。因此,我决定从Google Developer's网站

中包含最新版本的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') })

然而,我从控制台获得以下输出

  

未捕获的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`

1 个答案:

答案 0 :(得分:3)

您尝试将jQuery方法应用于原始DOM对象。指定索引后,您不再选择jQuery对象。

此外,您构建on()功能的方式并未使用事件委派。试试这个:

$(document).on("td > a:eq(0)", "click", function() { alert('hi') });