先看看解析,事件委托:也称事件代理 就是利用冒泡的原理 把加事件加到父级上,触发执行效果

window.onload = function(){
var oUl = document.getElementById('ull');
var aLi = document.getElementsByTagName('li');

oUl.onmouseover = function(ev){
var event = ev||window.event; // 获取event对象
var target = ev.target || ev.srcElement; // 获取触发事件的目标对象

if(target.nodeName.toLowerCase() == 'li'){ //判断目标对象是不是li
target.style.background = 'red';
}

}
代码中加了一个标签名的判断,主要原因是如果不加判断,当你鼠标移入到父级oUL上面的时候,整个列表就会变红,这不是我们想要的结果,所以要判断一下。
target.nodeName 弹出的名字是大写的,所以需要转换大小写再比较。

原文地址:https://www.cnblogs.com/jayruan/p/5625442.html