举个例子:我们需要给每个li标签添加鼠标移入事件
<ul>
<li class="active">首页</li>
<li>国内</li>
<li>国际</li>
<li>军事</li>
<li>财经</li>
<li>互联网</li>
<li>体育</li>
<li>科技</li>
</ul>
下面是js代码
方法一:通过闭包实现
var lis = document.getElementsByTagName("li");
//方法一:闭包
for(var i=0;i<lis.length;i++){
lis[i].addEventListener("mouseover",function(k){
return function(){
console.log(k);
}
}(i));
}
方法二:事件委托
var lis = document.getElementsByTagName("li");
//方法二:事件委托
var ul = document.getElementsByTagName("ul")[0];
ul.addEventListener("mouseover",function(){
var e = arguments[0] || window.event;
var target = e.target || e.srcElement;
for(var i=0;i<lis.length;i++){
if(lis[i] == target){
console.log(i);
}
}
});
方法三:ES6 let块级作用域实现
var lis = document.getElementsByTagName("li");
//方法三:ES6 let块级作用域
'use script'
for(let i=0;i<lis.length;i++){
lis[i].onmouseover = function(){
console.log(i);
}
}