完善通用事件繫結函式
阿新 • • 發佈:2019-01-02
function bindEvent(elem, type, selector, fn){
if (fn == null) {
fn = selector
selector = null
}
elem.addEventListener(type, function(e) {
var target
if (selector) {
//代理
target = e.target
if(target.matches(selector)){
fn.call(target, e)
}
} else {
//不是代理
fn(e)
}
})
}
var div1 = document.getElementById('div1')
//使用代理
bindEvent(div1, 'click', 'a', function(e) {
e.preventDefault()
console.log(this.innerHTML)
})
//不使用代理
bindEvent(p1, 'click', function(e) {
console.log(p1.innerHTML)
})