工具函数 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
        )
      );
posted @ 2021-03-25 18:26  黑黑哈哈  阅读(37)  评论(0编辑  收藏  举报