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

有人用过jq的闭包吗,事件绑定时我想在回调函数里面放个闭包,因为里面的arr[i]是

有人用过jq的闭包吗,事件绑定时我想在回调函数里面放个闭包,因为里面的arr[i]是

交互式爱情 2019-02-15 18:46:51
        function bindEvent(arr,state){            var display = (state == 1 ? 'block' : 'none');            if (arr.length > 1) {                for (var i = 0; i < arr.length; i++) {                      $originalElement.eq(arr[i]).on('click', function () {                    //这里的arr[i]是undefined                        console.log(arr[i]);                        $objnum.css('display', display);                                       });                }            } else {                $originalElement.eq(arr[0]).on('click',function(){                    $objnum.css('display', display);                })            }             }
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

function bindEvent(arr, state) {

    var display = (state == 1 ? 'block' : 'none');

    if (arr.length > 1) {

        for (var i = 0; i < arr.length; i++) {

            (function (i) {

                $originalElement.eq(arr[i]).on('click', function() { //这里的arr[i]是undefined

                    console.log(arr[i]);

                    $objnum.css('display', display);

                });

            })(i);

        }

    } else {

        $originalElement.eq(arr[0]).on('click', function() {

            $objnum.css('display', display);

        })

    }

}

另外你也可以用ES6的let去解决这种问题


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

添加回答

举报

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