日期:2014-05-16  浏览次数:20498 次

js循环调用事件的问题!!

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

代码大概这样子,在一个按钮点击事件中,循环调用其他的控件的事件,结果只有最后一个执行了,
求大神,怎么解决这个问题!!
js javascript web

------解决方案--------------------
$("#button1").click(function () {
    for (var i = 0; i < list.length; i++) {
(function(x){
        ($("#button"+x).click();)
})(i)
    }
}
试试
------解决方案--------------------
闭包作用域问题,


<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>

------解决方案--------------------
我这样试了一下,可以:


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>

------解决方案--------------------
为什么不直接执行click的方法,非要用按钮的事件。
------解决方案--------------------
这是什么东西来的。