我可以在同一个元素上为同一个DOM事件调用addEventListener Twice吗?

时间:2013-03-30 01:44:42

标签: javascript dom

我可以在相同的DOM事件的同一元素上调用addEventListener两次吗? 我将此代码用于多个JavaScript文件,看起来它们会覆盖,这意味着其中一个代码中的代码会触发,而另一个代码中的代码不会触发。

(function () {
  "use strict";
  document.addEventListener('load', function (event) {

    // Code

  }, false);
}());

编辑 @plalx从jQuery源代码看起来他们正在使用window.addEventListener('load',...);

if (document.addEventListener) {
    // Use the handy event callback
    document.addEventListener("DOMContentLoaded", DOMContentLoaded, false);

    // A fallback to window.onload, that will always work
    window.addEventListener("load", jQuery.ready, false);

    // If IE event model is used
} else if (document.attachEvent) {

1 个答案:

答案 0 :(得分:1)

我对此并不是100%肯定,但我认为你不应该使用addEventListener将事件处理程序附加到文档的load事件。我在Chrome中进行了测试,但它不起作用,所以它一定不是标准的。如果您想在文档准备好时执行某些代码,那么您有很多选择,但最简单的跨浏览器解决方案是使用jQuery

但是,你也可以在大多数现代浏览器中这样做:

document.addEventListener('DOMContentLoaded', function () {
    alert('load!');
});