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

查看:75
本文介绍了javascript - 下面程序里面i的值为什么是5?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<!DOCTYPE html>
<html lang="en">
<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>

解决方案

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

这篇关于javascript - 下面程序里面i的值为什么是5?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆