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

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

在for循環(huán)中分配單擊處理程序

在for循環(huán)中分配單擊處理程序

炎炎設(shè)計 2019-06-19 19:48:38
在for循環(huán)中分配單擊處理程序我有幾個div‘s#mydiv1, #mydiv2, #mydiv3.。并希望將單擊處理程序分配給它們:$(document).ready(function(){   for(var i = 0; i < 20; i++) {     $('#question' + i).click( function(){       alert('you clicked ' + i);     });   }});但是沒有表現(xiàn)出來'you clicked 3'當(dāng)點擊#mydiv3(至于每一次點擊)我得到'you clicked 20'..我做錯什么了?
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

這是一個常見的錯誤循環(huán)閉包在Javascript里。您需要像這樣的回調(diào)函數(shù):

function createCallback( i ){
  return function(){
    alert('you clicked' + i);
  }}$(document).ready(function(){
  for(var i = 0; i < 20; i++) {
    $('#question' + i).click( createCallback( i ) );
  }});

2016年6月3日:由于這個問題仍然有一些牽引力和ES6也是流行的,我建議一個現(xiàn)代的解決方案。如果編寫ES6,則可以使用let關(guān)鍵字,這使得i變量是循環(huán)的局部變量,而不是全局變量:

for(let i = 0; i < 20; i++) {
  $('#question' + i).click( function(){
    alert('you clicked ' + i);
  });}

它更短更容易理解。


查看完整回答
反對 回復(fù) 2019-06-19
?
翻翻過去那場雪

TA貢獻2065條經(jīng)驗 獲得超14個贊

為了澄清,我等于20,因為單擊事件在循環(huán)完成后才會觸發(fā)。


查看完整回答
反對 回復(fù) 2019-06-19
  • 3 回答
  • 0 關(guān)注
  • 456 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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