下面程序里面i的值为什么是5?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script type="application/javascript" src="scripts/jquery-1.10.2.js"></script>

</head>

<body>

        <button> 0 </button>

        <button> 1 </button>

        <button> 2 </button>

        <button> 3 </button>

        <button> 4 </button>


        <div id="log"></div>


        <script>

            var logDiv = $( "#log" );


            for ( var i = 0; i < 5; i++ ) {

                $( "button" ).eq( i ).on( "click", { value: i}, function( event ) {

                    var msgs = [

                        "button = " + $( this ).index(),

                        "event.data.value = " + event.data.value,

                        "i = " + i

                    ];

                    logDiv.append( msgs.join( ", " ) + "<br>" );

                });

            }

        </script>


</body>

</html>


哔哔one
浏览 613回答 1
1回答

慕的地6264312

这就涉及到js的闭包概念,你绑定事件的时候for循环已经走完了,如果你想点击哪个button加载对应数的button,应该使用闭包,将i值传进去。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript