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

two click handler on same element conflict

本文关键字:两个 单击 程序 处理 元素 冲突      更新时间:2023-09-26

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

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

和在外部JS文件我有一个jQuery按钮点击相同的元素:

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

问题是它完全忽略了jQuery的clickhandler。有没有办法有两个独立的点击处理程序都工作?

你的代码中肯定有别的东西,因为你可以在一个对象上有多个事件处理程序。

您只能通过onclick分配一个处理程序,但这不应该以任何方式干扰jQuery事件处理程序。请在jsFiddle中向我们展示一个可重复的演示,因为很可能是您的代码中的其他问题导致的。

仅供参考,我强烈建议您不要使用事件处理程序的onclick属性,因为有一个事件处理程序覆盖另一个的危险,使用.addEventListener()或jQuery的.click()时不会发生的事情。但是,.addEventListener()和jQuery的.click()都不会覆盖onlick

下面是一个工作演示,显示两个事件处理程序都工作得很好:http://jsfiddle.net/jfriend00/4Ge52/