手写一个通用的dom事件代理与绑定函数
2020-08-15 本文已影响0人
Thesand
// 通用的事件绑定函数
function bindEvent(elem, type, selector, fn) {
//判断传入参数,传入三个参数为事件绑定,四个为事件代理
if (fn == null) {
fn = selector
selector = null
}
elem.addEventListener(type, event => {
const target = event.target
if (selector) {
// 代理绑定
if (target.matches(selector)) {
fn.call(target, event)
}
} else {
// 普通绑定
fn.call(target, event)
}
})
}