一个事件能否注册多个JavaScript处理程序?

4

一个事件(比如 window.onresize)能否注册多个JavaScript处理程序呢? 我尝试使用+=,但没有效果。只有=,显然会替换掉任何先前分配的事件。

2个回答

8

对于IE浏览器,您可以使用以下代码:

window.attachEvent('onresize', handler);

其中handler是您的处理函数。

在其他所有浏览器中,您可以使用以下代码:

window.addEventListener('resize', handler);

这两个函数都可以多次使用,以附加多个事件处理程序。


0

你可以为一个事件注册多个处理程序,但在不同的浏览器中,实现这一机制的方式是不同的 - 所以使用框架来做这件事更容易:

$(document).click(function() { 
  alert('a');
});

$(document).click(function() {
  alert('b');
});

事件按绑定顺序触发 - 因此,在这种情况下,foo将在bar之前被看到。您可以通过使用处理程序调用stopImmediatePropagation函数来阻止后续事件的触发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接