Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在每个循环中使用setTimeout不起作用_Javascript_Jquery_Ajax - Fatal编程技术网

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

Javascript 在每个循环中使用setTimeout不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个巨大的galerie,有大约400张照片。我制作了一个按钮,这样我可以从DOM和服务器中删除所有图片(通过对每个文件使用ajax请求) 我试图在for each循环中使用setTimeout,为所有项目提供一个红色的背景色,仅用于测试。但是,如果我点击我的按钮,什么也不会发生 //run trough all pages pages.each ( function() { var items = $(this

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

我试图在for each循环中使用
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的情况下运行这段代码,那么它可以工作。我还尝试了其他等待时间。不会抛出任何错误。

这应该可以工作

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

请注意,当您在setTimeout中运行某个内容时,上下文会发生更改,
将指向我看到的其他内容。。。谢谢。这可能会有帮助。