$("#button1").click(function () {
    for (var i = 0; i < list.length; i++) {
        $("#button"+i).click();
    }
}
代码大概这样子,在一个按钮点击事件中,循环调用其他的控件的事件,结果只有最后一个执行了,
求大神,怎么解决这个问题!!jsjavascriptweb

解决方案 »

  1.   

    $("#button1").click(function () {
        for (var i = 0; i < list.length; i++) {
    (function(x){
            ($("#button"+x).click();)
    })(i)
        }
    }
    试试
      

  2.   

    闭包作用域问题,
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type='text/javascript'>
    $("#button1").click(function () {
        for (var i = 0; i < list.length; i++) {
            return (function(){
    $("#button"+i).click();
    })(i)
        }
    }
    </script>
      

  3.   

     return (function(i){,上面的少了一个i
      

  4.   

    我这样试了一下,可以:
    jQuery("#button1").bind("click", function () {
        for (var i = 2; i < 4; i++) {
            $("#button"+i).click();
        }
    });<input id="button1" type="button" value="Button1"></input>
    <input id="button2" type="button" value="Button2"  onclick="alert(2);"></input>
    <input id="button3" type="button" value="Button3"  onclick="alert(3);"></input>
      

  5.   

    为什么不直接执行click的方法,非要用按钮的事件。