您的位置:首页 > Web前端 > JQuery

JQuery在循环中绑定事件的问题详解

2016-06-02 00:00 573 查看
有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说

<input type="text" name="username" id="username_1" value="" />
<input type="text" name="username" id="username_2" value="" />
<input type="text" name="username" id="username_3" value="" />


现在有个循环,在页面载入的时候需要给这每个元素增加一个onclick事件,很容易想到的写法就是

$(function(){
for(var i=1; i<=3; i++){
$('#username_'+i).onclick(function(){
alert(i);
});
}
});


这么写是错误的。。。

错误的原因以及类似的错误分析详见这篇文章《深入理解JQuery循环绑定事件》

然后改成下面的就对了

$(function(){
for (var i=1; i<=3; i++){
$("#username_"+i).bind("click", {index: i}, clickHandler);
}

function clickHandler(event) {
var i= event.data.index;
alert(i);
}
});


以上这篇JQuery在循环中绑定事件的问题详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

深入理解JQuery循环绑定事件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery 循环 绑定 事件