两个单击处理程序对同一元素冲突

时间:2014-05-03 23:08:34

标签: javascript jquery

我有一个元素#div_1,它在同一个文档(不是extern文件)中有一个普通的JS函数:

var trigger = false;
var div_1 = document.getElementById('div_1')
div_1.onclick = function() { trigger = true; };

在extern JS文件中,我有一个jQuery按钮点击相同的元素:

$(document).ready(function() {
 $('#div_1').click(function() {
   // some actions here
 });
});

问题是它确实完全忽略了jQuery clickhandler。有没有办法让两个单独的点击处理程序同时工作?

1 个答案:

答案 0 :(得分:1)

您的代码中必定还有其他内容,因为您当然可以在对象上拥有多个事件处理程序。

您只能通过onclick分配一个处理程序,但这绝不会干扰jQuery事件处理程序。请在jsFiddle中向我们展示一个可重现的演示,因为您的代码可能存在其他问题导致此问题。

仅供参考,我强烈建议您不要将onclick属性用于事件处理程序,因为存在一个事件处理程序覆盖另一个事件处理程序的危险,这在使用.addEventListener()或jQuery的{{{ 1}}。但是,.click()或jQuery的.addEventListener()都不会覆盖.click()

这是一个工作演示,显示两个事件处理程序都运行正常:http://jsfiddle.net/jfriend00/4Ge52/