javascript - 同一元素上的两次单击处理程序发生冲突

标签 javascript jquery

我有一个元素#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/

关于javascript - 同一元素上的两次单击处理程序发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23450765/

相关文章:

javascript - 将函数放入 return 语句中

javascript - 从ext js中的标题栏中删除内容

javascript - Web套接字性能

javascript - 在所有 JavaScript 页面中的其他函数之前运行一个全局函数

javascript - 在 Masonry 中始终左对齐

javascript - 如何在 javascript 中计算 html 表格的最小宽度?

javascript - 合并 2 个 jQuery ajax 调用的结果

jquery - Malihu jQuery 自定义滚动条与 Select 2

javascript - 如何使用 cloneNode 克隆文本区域?

javascript - 动态创建的元素上的事件绑定(bind)?