为了账号安全,请及时绑定邮箱和手机立即绑定

javascript中如何将循环控制变量传递到循环中的事件中去?

javascript中如何将循环控制变量传递到循环中的事件中去?

largeQ 2018-12-20 22:15:45
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上添加事件是需要用事件委托机制的。
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

可以给li元素增加一个data:
$(list[i]).data('index',i)
在绑定的click事件中获取那个值:
$(this).data('index')

变量名index和i的值是可以任意的,所以可以很灵活


查看完整回答
反对 回复 2019-01-22
  • 1 回答
  • 0 关注
  • 481 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信