.on 或 .live 函数均未被识别

Neither .on or .live functions are recognized

我现在很沮丧。在过去的半小时里,我一直在努力让 event delegation 工作。我尝试使用 .on,但 Chrome 告诉我这不是函数。

我搜索了这个问题

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

并认为这是因为我使用的是 JQuery 的早期版本。因此,我决定包含来自 Google 开发者网站

的最新版本 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) 下的 link 并点击 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 文件中,并以这种方式包含在内,但同样失败。

Content Distribution Network(CDN)的问题还是版本本身的问题?

我知道 JQuery 2 只支持现代浏览器,但我正在使用 Google Chrome。我不明白是什么问题。

以前有其他人运行遇到过这个问题吗?非常感谢帮助或建议。

编辑:

`jquery.fn.jquery` returns `2.1.3`

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

此外,您构建 on() 函数的方式没有使用事件委托。试试这个:

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