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

        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);

                })

            }     

        }


交互式爱情
浏览 396回答 1
1回答

收到一只叮咚

function bindEvent(arr, state) {&nbsp; &nbsp; var display = (state == 1 ? 'block' : 'none');&nbsp; &nbsp; if (arr.length > 1) {&nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i < arr.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (function (i) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $originalElement.eq(arr[i]).on('click', function() { //这里的arr[i]是undefined&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(arr[i]);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $objnum.css('display', display);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })(i);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; $originalElement.eq(arr[0]).on('click', function() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $objnum.css('display', display);&nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; }}另外你也可以用ES6的let去解决这种问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript