for循環執行順序
for(var i=0;i<oLis.length;i++){
??????????? oLis[i].index=i;
??????????? oLis[i].onclick=function(){
??????????????? alert(i);
??????????????? for(var j=0;j<oLis.length;j++){
??????????????????? oLis[j].className="";
??????????????????? oDivs[j].className="hide";
??????????????? }
??????????????? this.className="on";
??????????????? oDivs[this.index].className="";
??????????? }?????
}
這部分不明白,for循環是跳過oLis[i].onclick=function()執行完了么,為什么第四行alert(i)彈出是3,i的最大值應該是2啊,如果for循環是執行完了,之后點擊選項卡是怎么進入到for循環的onclick事件的?
2015-08-26
onclick 是一個事件
而事件是需要出發條件的,當你點擊的時候,就觸發啦
至于為什么彈出的都是3?
按理來說應該是2,那就要降到for的執行順序
for( ①; ②; ③ ?){
????④
}
so,來模擬運行下:?①,②,④,③ ,②,④,③ .....
故,①只會執行一次,②④會執行 n 次, ③會執行 n+1 次