事件委托
将多个相同元素的相同事件,添加给页面上现存的共同的父元素,利用事件冒泡,配合事件源,找到真正点击的元素。
通过e.target获取触发事件的事件源
优势:
- 1.节省性能
- 2.可以给页面上暂时不存在的元素绑定事件
缺点: - this不好用
事件委托的封装
var obox = document.querySelector(".box");
var ap = obox.getElementsByTagName("p");
obox.onclick = enTrust(ap,function(t){
console.log(this);
})
function enTrust(ele,callback){
return function(eve){
var e = eve || window.event;
var target = e.target || e.srcElement;
for(var i = 0;i < ele.length;i++){
if(target === ele[i]){
callback.bind(target)();
}
}
}
}