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

标签 javascript jquery console developer-tools

我现在很郁闷。在过去的半小时里,我一直在努力让 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/

相关文章:

jquery - 淡出并删除表格行

javascript - 为什么将 redux 调用包装到 promise 中允许访问结果 "immediately"

javascript - 在文本框中输入后按钮单击不再有效

javascript - 无法使用 jQuery 填充某些复选框

jquery - TypeIt JQuery 插件 : Remove cursor when typing has completed

android - 转换为 Dalvik 格式失败,出现错误 1,并在控制台 View 中显示一条可怕的消息

javascript - 如何清除/禁用次要和警告控制台日志错误?

php - 从 php5 压缩文件 .zip

javascript - 搜索现有查询参数并且不添加 "?"(如果存在)的 jQuery 脚本

javascript - 使用 jQuery 在下拉列表中分配和检索多个值