当多个对象需要处理同一请求时,可以将这些请求交给另一个对象统一处理
window.onload = function () {
var aLis = document.getElementsByTagName("li");
for (var i = 0; i < aLis.length; i++) {
aLis[i].onclick = function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
console.log(target.innerHTML);
}
}
/* 上面写法存在的问题:
1.需要每个li绑定不同的事件,会造成性能的损失和内存的占用
2.在ul中,新添加的li会没有onclick事件
*/
// 使用事件委托,委托给ul
var oUl = document.querySelector('#uli');
oUl.onclick = function(e) {
var e = e || window.event;
var target = e.target || e.srcElement;
if(target.nodeName.toLowerCase() === 'li') {
console.log(target.innerHTML);
}
}
}