我在我的库中创建了委托方法:
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
}
}
但是我怎样才能取消委托事件呢?我应该创建全局函数还是什么?也许是自定义事件,我不知道。