1. 程式人生 > >完善通用事件繫結函式

完善通用事件繫結函式

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) })