一个事件(比如 window.onresize
)能否注册多个JavaScript处理程序呢?
我尝试使用+=
,但没有效果。只有=
,显然会替换掉任何先前分配的事件。
一个事件(比如 window.onresize
)能否注册多个JavaScript处理程序呢?
我尝试使用+=
,但没有效果。只有=
,显然会替换掉任何先前分配的事件。
对于IE浏览器,您可以使用以下代码:
window.attachEvent('onresize', handler);
其中handler是您的处理函数。
在其他所有浏览器中,您可以使用以下代码:
window.addEventListener('resize', handler);
这两个函数都可以多次使用,以附加多个事件处理程序。
你可以为一个事件注册多个处理程序,但在不同的浏览器中,实现这一机制的方式是不同的 - 所以使用框架来做这件事更容易:
$(document).click(function() {
alert('a');
});
$(document).click(function() {
alert('b');
});
事件按绑定顺序触发 - 因此,在这种情况下,foo
将在bar
之前被看到。您可以通过使用处理程序调用stopImmediatePropagation函数来阻止后续事件的触发。