【问题标题】:Neither .on or .live functions are recognized.on 或 .live 函数均不被识别
【发布时间】:2015-06-10 15:52:41
【问题描述】:

我现在很沮丧。在过去的半个小时里,我一直在努力让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') })

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

未捕获的类型错误:$(...)[0].on 不是函数 在:2:16 在 Object.InjectedScript._evaluateOn (:895:140) 在 Object.InjectedScript._evaluateAndWrap (:828:34) 在 Object.InjectedScript.evaluate (:694:21)

我还尝试将缩小的 JQuery 代码复制并粘贴到 JavaScript 文件中,并包括这种方式,但这也失败了。

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

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

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

编辑:

`jquery.fn.jquery` returns `2.1.3`

【问题讨论】:

  • 在浏览器中输入 jQuery.fn.jquery 并告诉我输出结果
  • 返回2.1.3
  • @RiteshK,除了script 标签,我还需要包含什么?

标签: javascript jquery console developer-tools


【解决方案1】:

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

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

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

【讨论】:

  • 'td > a:eq(0)' 会不会更符合 jQuery 语法?
  • 这完美!如果可以的话,我会在 4 分钟内接受这个答案。非常感谢
猜你喜欢
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
  • 2017-08-21
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多