課程
/前端開發
/JavaScript
/Tab選項卡切換效果
為什么我把this.id換成i結果就不對了?
2014-11-14
源自:Tab選項卡切換效果 1-5
正在回答
因為這這個時候i的作用域已經結束了,這時i的值是它的最后一個值。
thenger
ZhiHao 提問者
因為onClick不是立即執行的,實際上當事件處理函數執行時,這里如果使用i的話會引用同一個i,而且這個i值等于for循環結束時i的值。
實際上這里起的效果跟閉包是一樣的,具體效果是讓每一個事件處理函數都有屬于它自身的i值,而不是引用同一個i。
理解閉包和作用域就知道,i在函數中永遠只能取得最后一個值。意思就是在函數里j<n.length;這個條件其實可以寫成j<i;就行了。
舉報
本課程詳細介紹網頁頁面中最流行常用的tab切換效果
2 回答divs[i]替代divs[this.id]為什么不行???
3 回答這里this.id只是為了切換時相互對應的,完全可以簡單的處理為lis[i].index=i,后面直接用this.index就可以了
5 回答alert(this.id);為什么不出來
3 回答為什么一定要用titles[i].id = i;然后用divs[this.id]去取到元素而不用divs[i]?
2 回答為什么我的divs[this.id].style.display='block';沒有效果呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-11-17
因為這這個時候i的作用域已經結束了,這時i的值是它的最后一個值。
2016-10-21
因為onClick不是立即執行的,實際上當事件處理函數執行時,這里如果使用i的話會引用同一個i,而且這個i值等于for循環結束時i的值。
實際上這里起的效果跟閉包是一樣的,具體效果是讓每一個事件處理函數都有屬于它自身的i值,而不是引用同一個i。
2015-03-24
理解閉包和作用域就知道,i在函數中永遠只能取得最后一個值。意思就是在函數里j<n.length;這個條件其實可以寫成j<i;就行了。