jquery循环不触发jquery函数

时间:2013-09-10 10:02:54

标签: jquery

我搜索了stackoverflow和其他各种网站,似乎无法解决这个难题。

我的目标是使用带有div id的数组将jQuery函数连续应用于div。

我有以下代码由于某种原因无效:

$(document).ready(function(){
    $('#click').click(function(){ 
        var layout_list = ['1','2','3','4','5','6','7','8','9','10'];
        load_delay = 50;
        for (i = 0; i < layout_list.length; i++ ) {
            load_delay =  load_delay+50;
            setTimeout(function(){
                $("#l_"+layout_list[i]).css("visibility","visible");
                $("#l_"+layout_list[i]).addClass("bounceIn");
            },load_delay);
        }
    });
});

1 个答案:

答案 0 :(得分:1)

你必须使用一个闭包,例如:

for (i = 0; i < layout_list.length; i++) {
    load_delay = load_delay + 50;
    (function (i) {
        setTimeout(function () {
            $("#l_" + layout_list[i]).css("visibility", "visible");
            $("#l_" + layout_list[i]).addClass("bounceIn");
        }, load_delay);
    }(i));
}