JQuery在循环中绑定事件的问题详解
有个页面上需要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); } });
相关推荐
84483065 2020-09-11
85477104 2020-08-15
83510998 2020-08-08
tztzyzyz 2020-07-05
delmarks 2020-06-28
89510194 2020-06-27
牵手白首 2020-06-14
tztzyzyz 2020-05-31
81463166 2020-05-17
88570299 2020-05-17
delmarks 2020-05-17
donghongbz 2020-05-15
tztzyzyz 2020-05-15
<table id="table" class="table table-striped table-bordered table-hover table-nowrap" width="100%&qu
牵手白首 2020-05-14
Chriswang 2020-04-30
83510998 2020-05-03