对于同一个DOM事件,我可以在同一个元素上调用两次addEventListener吗?

Can I call addEventListener Twice on the same element for the same DOM event?

本文关键字:同一个 addEventListener 调用 两次 事件 DOM 我可以 元素      更新时间:2023-09-26

我可以调用addEventListener两次对同一元素的同一DOM事件?我将此代码用于多个JavaScript文件,它们似乎会被重写,这意味着其中一个文件中的代码会触发,而另一个文件中的代码不会触发。

(function () {
  "use strict";
  document.addEventListener('load', function (event) {
    // Code
  }, false);
}());

编辑 @plalx从jQuery源代码,它看起来像他们使用的窗口。addEventListener(的负载 ', ...);

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) {

我不是100%确定这一点,但我不认为您应该使用addEventListener将事件处理程序附加到文档的加载事件。我在Chrome中测试过,它不起作用,所以它一定不是标准的。如果您想在文档准备好后执行一些代码,您有许多选择,但最简单的跨浏览器解决方案是使用jQuery

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

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