JQuery在循环中绑定事件的问题详解
2016-06-17来源:易贤网

有个页面上需要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在循环中绑定事件的问题详解就是小编分享给大家的全部内容了,希望能给大家一个参考

2026公务员·事业单位培训课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息