如何在 Vanilla JS 中创建 jQ undelegate?

时间:2021-01-29 12:57:33

标签: javascript

我在我的库中创建了委托方法:

export default class Events {
  on(type, callback, passive) {
    this.nodeList.forEach(
      (element) => element.addEventListener(type, callback, passive)
    )
    return this
  }

  off(type, callback, passive) {
    this.nodeList.forEach(
      (element) => element.removeEventListener(type, callback, passive)
    )
    return this
  }

  delegate(type, callback, selector) {
    this.nodeList.forEach(
      (element) => element.addEventListener(type, this.delegateListener.bind(event, (event) => {
        for (let target = event.target; target && target !== element; target = target.parentNode) {
          if (target.matches(selector)) {
            callback.call(target, event);
            break;
          }
        }
      }), true)
    )
    return this
  }

}

但是我怎样才能取消委托事件呢?我应该创建全局函数还是什么?也许是自定义事件,我不知道。

0 个答案:

没有答案
相关问题