方法1 :
for(var i=0; i<oLis.length; i++){
oLis[i].onclick = (function(j){
return function(){
alert(j);
}
})(i);
}
这样的话, 给每个li绑定onclick事件时, 其实绑的是一个立即执行函数, 这个立即执行函数的参数是i, 因为它是立即执行的, 循环时已经把i的值赋给了li的onclick事件, 所以在外部函数里的i改变后并不会影响i的值.
另一种实现方法:(立即执行函数)
for(var i=0; i<oLi.length; i++){
(function(j){
oLi[j].onclick = function(){
alert(j);
};
})(i);
}
原文地址:https://www.cnblogs.com/shiyunfront/p/10385399.html
时间: 2024-11-10 18:05:55