0

在以下代码中,CLICK() 方法只运行一次:

<!DOCTYPE html>
<html>
<head>
    <script src="jquery-1.10.2.min.js"></script>
    <script>
    $(function(){
        var arr = ["test1", "test2", "test3"];
        var i=0;

        $("#btn").click( function () {
            while(arr[i])
                alert(arr[i++]);
        });

    });
    </script>
</head>

<body> 
    <div id="btn">Click Me</div>
</body>

</html>

有什么问题?我阅读了所有其他主题,但没有帮助。

非常感谢。

4

4 回答 4

3

它确实: - 只需将你重置i为 0。在你的处理程序中,条件第二次失败,因为你从你之前的执行i变成了它并且它失败了,因为在你的情况下 i.e3array.length没有项目。arr[array.length]

    $("#btn").click(function () {
       while(arr[i])
            alert(arr[i++]);
        i = 0; //here reset it

    });

或者只是将其移动到函数的范围内。

$("#btn").click(function () {
        var i = 0;
           while(arr[i])
                alert(arr[i++]);
 });
于 2013-09-21T22:14:16.970 回答
1

click 方法在每次点击时运行,但在第一次点击之后它不再进入 while 循环,因为i === 3.

于 2013-09-21T22:15:40.507 回答
0

尝试这个:

$("#btn").on('click', function () {
            while(arr[i])
                alert(arr[i++]);
        });
于 2013-09-21T22:11:11.580 回答
0

我认为问题是由变量 i 引起的,请将 i 移到 click 函数中,例如:

$("#btn").bind('click', function(){
    var i = 0;
    while(arr[i])
        alert(arr[i++]);
});
于 2013-09-21T22:14:42.783 回答