1,遇到一个需求,需要在循环中绑定事件,并需要在事件中用到循环控制变量,代码如下:
html代码:
<ol>
<li class="item">li-node-01</li>
<li class="item">li-node-02</li>
<li class="item">li-node-03</li>
<li class="item">li-node-04</li>
</ol>
js代码:
var list = $('.item').get();
var length = list.length,
i;
for (i = 0; i < length; i++) {
// 这里我给list[i]添加了一个属性,并将i值赋给它
list[i].tmp = i;
$(list[i]).on('click', function(e) {
console.log(e.target.tmp);
});
}
2,从上面的代码可以看到,我想在循环中的事件回调函数中使用循环变量的值,目前我想到的方法是,给绑定事件的对象添加一个额外的属性,并将循环控制变量的值赋给它。我想问下,除了这种方法外是否还有其它的方法。
注意:以上代码只是为了方便描述问题,实际应用中,在上面的li上添加事件是需要用事件委托机制的。
有只小跳蛙
相关分类