点击一个ul的五个li元素,分别弹出他们的序号,怎么做?
方法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);
}