为什么在addEventListener回调中调用removeEventListener?

时间:2014-05-22 11:44:00

标签: javascript javascript-events

我已经下载了JS启动器模板。它有一个default.js文件,如下所示: (当然,js文件在仅包含<a>元素的html页面中引用。)

(function () {
    "use strict";
    window.addEventListener("load", function load(event) {
        window.removeEventListener("load", load, false);
        init();
    }, false);

    function init() {
        document.getElementById("link").addEventListener("click", showAlert, false);
    }

    function showAlert() {
        alert("Welcome to Pure HTML!");
    }
}());

现在我的问题是为什么window.removeEventListener函数中有window.addEventListener

1 个答案:

答案 0 :(得分:10)

这是一种允许事件处理程序执行一次的模式。在第一次执行事件处理程序时,将删除事件处理程序以停止再次执行。

有趣的是,它用于window加载事件,因为它应该只触发一次。