[英]Pass custom variable to anonymous jQuery click function
我想在click事件上傳遞foreach循環的當前迭代,但它返回“undefined” - 但為什么呢?
for (var i = 0; i < __ARR_selectors.length; i++) {
__ARR_selectors[i].click( function(e, i) {
console.log(i); //returns undefined
}
嘗試這個:
for (var i = 0; i < __ARR_selectors.length; i++) {
(function (i) {
__ARR_selectors[i].click( function() {
console.log(i); //returns undefined
});
})(i);
}
你的代碼的問題是i
為循環的每次迭代更新了變量,因此click事件被綁定到i
擁有的最后一個值。
要解決這個問題,請創建一個匿名函數,該函數接受i
的參數,該參數可以繞過javascript閉包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.