事件委托就是把本该自己做的事情交给别人帮我做
function delegate(element, eventType, selector, fn) {
// 对传过来的元素添加事件监听
element.addEventListener(eventType, e => {
// el是想要被监听的对象
let el = e.target
// 用来判断当前DOM节点是否能完全匹配对应的CSS选择器规则,返回值是Boolean
while (!el.matches(selector)) {
if (element === el) {
el = null
break
}
el = el.parentNode
}
el && fn.call(el, e, el)
})
return element
}