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

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

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

哔哔one 2018-08-13 15:10:24
<!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>
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

这就涉及到js的闭包概念,你绑定事件的时候for循环已经走完了,如果你想点击哪个button加载对应数的button,应该使用闭包,将i值传进去。


查看完整回答
反对 回复 2018-09-20
  • 1 回答
  • 0 关注
  • 612 浏览
慕课专栏
更多

添加回答

举报

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