在每个循环中使用setTimeout不起作用

时间:2016-09-05 13:01:07

标签: javascript jquery ajax

我有一张约有400张照片的巨幅画廊。我做了一个按钮,所以我可以从DOM和服务器中删除所有图片(通过对每个文件使用ajax请求)。

我尝试在每个循环中使用setTimeout来为所有项目提供红色的背景颜色,仅用于测试。但是,如果我点击我的按钮,没有任何反应!

    //run trough all pages
    pages.each
    (
        function()
        {
            var items = $(this).children("ul").children("li");

            //run through each item of the page
            items.each
            (
                function()
                {
                    setTimeout(function() { $(this).css("background-color","red"); }, 100);
                }
            );
        }
    );

如果我在没有setTimeout的情况下运行此代码,那么它可以工作。我也尝试过其他等待时间。没有错误。

1 个答案:

答案 0 :(得分:2)

这应该有效

setTimeout(function(el) { el.css("background-color","red"); }, 100, $(this));