事件监听器不起作用

Posted

技术标签:

【中文标题】事件监听器不起作用【英文标题】:Event listener don't work 【发布时间】:2015-06-06 06:32:09 【问题描述】:

我有下一个选择器“#btn-similar”,为什么这个监听器有效:

$("#btn-similar").click(function(e)
   console.log("similar click");
);

但是这个监听器不是:

$(document).on("click", "#btn-similar", function(e)
   console.log("similar click");
);

html 标记是:

<div id="btn-similar" class="details-tab active-nav">
   <span class="angle"></span>
   <div class="title">Overview</div>
</div>

我正在使用 jQuery 1.10,有什么想法吗?

【问题讨论】:

如果你使用 1.7 以下的 jquery 版本就不能正常工作?使用 .live() 【参考方案1】:

由于两段代码都是正确的,并且在大多数情况下都可以工作,我只能想到第二段代码不能工作的原因:

    层次结构中存在&lt;a&gt; 标记或表单帖子,导致浏览器在看到代码结果之前转到新页面。

    您在页面中有多个对象id=btn-similar

    在您的第二个代码块之前有一个脚本错误导致它无法执行。

    您在某处有错字,并且代码实际上与所需的 id 不匹配。在您的问题中,您显示的代码引用了id=btn-similar,但代码是id=btn-overview

仅供参考,您可以在此处看到第二个代码块运行良好:http://jsfiddle.net/jfriend00/8s7rukt3/ 因此您的页面中显然存在一些您尚未披露的奇怪之处。

【讨论】:

@ramiromd - 你发现问题了吗?

以上是关于事件监听器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

删除 Typescript 的事件侦听器不起作用

Firebase 事件侦听器不起作用,我无法接收正确的快照

为啥 '@drop' 事件在 vue 中对我不起作用?

调用事件侦听器的 HTML 按钮不起作用 HTML 和 JS

按钮 onClick 事件侦听器在 Electron 应用程序中不起作用

输入事件侦听器(onkeypress、onkeydown)在 Android 数字键盘中不起作用