JavaScript在for循環(huán)中綁定事件解決事件參數(shù)不同的情況
更新時間:2014年01月20日 17:02:15 作者:
響應(yīng)一堆相似的事件,但是每個事件的參數(shù)都不同,在這種情況下就可以使用JavaScript 在for循環(huán)中綁定事件,下面有個不錯的示例,大家可以參考下
有時候要對響應(yīng)一堆相似的事件,但是每個事件的參數(shù)都不同,一開始還以為挺簡單的,用個for循環(huán)不就得了,結(jié)果發(fā)現(xiàn),額,都是使用了最后一個參數(shù)。。。
上網(wǎng)查資料!??!結(jié)果大神說用閉包解決
代碼:
for(var i=0;i<10;i++){
btns[i].onclick=(function(i){
return function(){alert(i)}
})(i)
}
大概原因是直接用btns[i].onclick=function(){alert(i)}時,JavaScript引擎會先將for循環(huán)里的代碼執(zhí)行完,
當(dāng)用戶出發(fā)onclick事件時,JavaScript會尋找i,結(jié)果會找到運(yùn)算完成之后的i,也就是10
但是用閉包處理的話,i會成為函數(shù)的局部變量
上網(wǎng)查資料!??!結(jié)果大神說用閉包解決
代碼:
復(fù)制代碼 代碼如下:
for(var i=0;i<10;i++){
btns[i].onclick=(function(i){
return function(){alert(i)}
})(i)
}
大概原因是直接用btns[i].onclick=function(){alert(i)}時,JavaScript引擎會先將for循環(huán)里的代碼執(zhí)行完,
當(dāng)用戶出發(fā)onclick事件時,JavaScript會尋找i,結(jié)果會找到運(yùn)算完成之后的i,也就是10
但是用閉包處理的話,i會成為函數(shù)的局部變量
您可能感興趣的文章:
- js添加綁定事件的方法
- JavaScript綁定事件監(jiān)聽函數(shù)的通用方法
- JavaScript中利用jQuery綁定事件的幾種方式小結(jié)
- 理解JS綁定事件
- js綁定事件this指向發(fā)生改變的問題解決方法
- JS中批量給元素綁定事件過程中的相關(guān)問題使用閉包解決
- javascript重復(fù)綁定事件造成的后果說明
- js移除事件 js綁定事件實(shí)例應(yīng)用
- JS中動態(tài)添加事件(綁定事件)的代碼
- Javascript動態(tài)綁定事件的簡單實(shí)現(xiàn)代碼
- js和jquery批量綁定事件傳參數(shù)一(新豬豬原創(chuàng))
- javascript 瀏覽器判斷 綁定事件 arguments 轉(zhuǎn)換數(shù)組 數(shù)組遍歷
- Javascript循環(huán)綁定事件的示例代碼
- 淺析js綁定事件的常用方法
相關(guān)文章
javascript創(chuàng)建動態(tài)表單的方法
這篇文章主要介紹了javascript創(chuàng)建動態(tài)表單的方法,實(shí)例分析了javascript動態(tài)操作頁面表單元素的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07JavaScript中String對象的使用方法以及實(shí)例
這篇文章主要給大家介紹了關(guān)于JavaScript中String對象的使用方法以及實(shí)例的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),方便開發(fā)者在JavaScript開發(fā)中更好地處理字符串,需要的朋友可以參考下2022-04-04JavaScript實(shí)現(xiàn)公告欄上下滾動效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)公告欄上下滾動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03javascript中的數(shù)據(jù)類型檢測方法詳解
這篇文章主要介紹了javascript中的數(shù)據(jù)類型檢測方法,結(jié)合實(shí)例形式分析了javascript數(shù)據(jù)類型并總結(jié)分析了常見的數(shù)據(jù)類型檢測操作技巧,需要的朋友可以參考下2019-08-08