for循环时jquery闭包问题
出问题代码:
for(var i=0;i<=5;i++){
$("<a href='#'>"+i+"</a><br />").bind("click",function(){
alert(i)
}).appendTo($("body"))
}
需写成
bind(event,data,function)才能得到对应的ifor(var i=0;i<=5;i++){
$("<a href='#'>"+i+"</a><br />").bind("click",{'value':i},function(v){
alert(v.data["value"])
alert(v.pageX)
}).appendTo($("body"))
}data会传给function的参数event的data属性,通过event.data引用
本文探讨了使用jQuery处理for循环中的闭包问题,展示了如何正确传递和捕获循环变量,避免常见的陷阱,确保点击事件能准确反馈对应元素的索引。
1311

被折叠的 条评论
为什么被折叠?



