亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS for循環問題

JS for循環問題

慕村225694 2018-08-10 10:10:19
被最近發現的一個問題困擾著,作為一名js小白最近自己在寫一些demo經常用到for循環來遍歷觸發事件,例如:var Lis=document.getElementsByTagName('li');for(i=0;i<Lis.length;i++){     Lis[i].onClick=function(){...} }平時一直都這樣用這沒怎么深究,最近在找一個bug時卻鉆進了牛角尖...就用上面的代碼作例,假設這是三個li,點擊每個li都可以觸發function,可是這個循環不是只循環3次嗎,它是怎么保證多次點擊不同的li都能被識別到的?問題解釋得不太好希望明白我意思的朋友可以指點指點...
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

你代碼中的循環3次,是分別為三個li綁定了點擊事件。任意一個li被綁定點擊事件后,可以無限地點擊它并觸發點擊事件對應的函數。其效果同下代碼:

var Lis=document.getElementsByTagName('li');
Lis[0].onClick=function(){/* 第一個li對應的回調函數代碼 */}
Lis[1].onClick=function(){/* 第二個li對應的回調函數代碼 */}
Lis[2].onClick=function(){/* 第三個li對應的回調函數代碼 */}

綁定完成后,你不管點擊多少次li都會執行相同次數的對應回調函數(比如點擊 n 次 第一個li,就會執行 n 次 function(){/* 第一個li對應的回調函數內容 */}中的代碼)。
當然,你點擊第二個 li 它將執行的是這段代碼function(){/* 第二個li對應的回調函數代碼 */},所以每個 li 的點擊是互不相關的。


查看完整回答
反對 回復 2018-09-25
  • 1 回答
  • 0 關注
  • 675 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號