第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于js批量綁定事件的問(wèn)題

關(guān)于js批量綁定事件的問(wèn)題

DIEA 2018-10-11 13:27:30
<body>  <ul id="list">  <li>1</li>  <li>2</li>  <li>3</li>  <li>4</li>  <li>5</li>  </ul>  <script>  var list_obj = document.getElementsByTagName('li');  for (var i = 0; i <= list_obj.length; i++) {          list_obj[i].onclick = function() {          alert(i);        }  }  </script>  </body>  for循環(huán)綁定完事件最后執(zhí)行的時(shí)候都是最后一個(gè)事件相同,點(diǎn)擊的時(shí)候彈出的不是0 1 2 3 4,而是5,這是為什么呢 如何解決
查看完整描述

1 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)調(diào)用onclick事件的時(shí)候,會(huì)向上找到i對(duì)象的值。這個(gè)時(shí)候,由于已經(jīng)循環(huán)完畢,所以i的值是5

解決方法:

閉包

for (var i = 0; i <= list_obj.length; i++) {
  list_obj[i].onclick = (function(i){
    return function() {  alert(i); }
  })(i);  }

ES6

for (let i = 0; i <= list_obj.length; i++) {        
  list_obj[i].onclick = function() {      
    alert(i);      
  }  
}


查看完整回答
反對(duì) 回復(fù) 2018-11-18
  • 1 回答
  • 0 關(guān)注
  • 879 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)