事件监听器不起作用

时间:2015-04-01 14:38:27

标签: jquery events dom

我有下一个选择器“#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 个答案:

答案 0 :(得分:0)

由于这两段代码都是正确的并且在大多数情况下都能正常工作,我只能想到这些原因导致第二条代码不起作用:

  1. 层次结构中有一个<a>标记或表单帖子,导致浏览器在您的代码结果出现之前转到新页面。

  2. 页面中有多个对象id=btn-similar

  3. 在您的第二个代码块之前发生了一个脚本错误,导致它无法执行。

  4. 您在某处有拼写错误,但代码实际上与所需的ID不匹配。在您的问题中,您会显示引用id=btn-similar的代码,但代码为id=btn-overview

  5. 仅供参考,您可以在这里看到第二段代码正常工作:http://jsfiddle.net/jfriend00/8s7rukt3/因此,您的页面显然有些奇怪,您尚未披露。