工具函数 createOnceHandler 只执行一次的事件绑定
工具函数 createOnceHandler
实现一个绑定事件之后,自动remove事件的函数
function createOnceHandler(target, event, handler, capture) {
//实际事件绑定的函数时once
return function once() {
//执行绑定的函数
var res = handler.apply(null, arguments);
if (res !== null) {
// 移除事件绑定
console.log("移除函数");
remove(target, event, once);
}
};
}
function remove(target, event, fn, capture) {
target.removeEventListener(event, fn, capture);
}
//测试
document.getElementById("app").addEventListener(
"click",
createOnceHandler(
document.getElementById("app"),
"click",
function () {
console.log("click");
},
false
)
);