一个接一个地改变多个div的颜色

我有一个问题一个一个地改变一些div的颜色。 在页面加载我创建一个div,其中填充了一个15×15 div的正方形(class =’feld’)

我想改变的所有div都有类feld

我的代码到目前为止:

$(document).ready(function() { create(); var delay = 1; function create(){ for (z = 1; z < 16; z++) { var zeile = jQuery('
', { class: 'zeile', id: z, html: "" }); $("#wortfeld").append(zeile); for (s = 1; s < 16; s++) { var div = jQuery('
', { class: 'feld', id: s, html: "" }); $(".zeile[id=" + z + "]").append(div); }; }; }; $('.feld').each(function(){ $(this).delay((delay++)*500).css("background-color","lightgoldenrodyellow"); }); });

所以我的目的是逐个改变每个.feld的颜色。 但它不能像我接近这个那样工作。 我也试过这样做:

  create(function(){ $('.feld').each(function(){ $(this).delay((delay++)*500).css("background-color","lightgoldenrodyellow"); }); }); 

也不起作用

这是HTML

           
TEST

首先,一个不相关的问题,但可能会导致问题:你不应该多次使用一个ID,给你的zeilezeile项目唯一的ID。 您还可以使用setTimeout获得一些里程,无需涉及.delay:

 $(document).ready(function() { create(); var delay = 1; function create(){ for (z = 1; z < 16; z++) { var zeile = jQuery('
', { class: 'zeile', id: 'z'+z, html: "" }); $("#wortfeld").append(zeile); for (s = 1; s < 16; s++) { var div = jQuery('
', { class: 'feld', id: 'z'+z+'s'+s, html: "" }); $("#z" + z).append(div); }; }; }; $('.feld').each(function(){ setTimeout(function(x){ $(x).css("background-color","lightgoldenrodyellow"); },(delay++)*500,this); }); });

小提琴

 .delay(duration).css({}) 

这不会在持续时间之后应用css,而是立即应用。

你需要使用.queue ,就像在这个例子中一样 :

 $('.feld').each(function(){ $(this).delay((delay++)*500).queue(function(next){ $(this).css("background-color","lightgoldenrodyellow"); next(); }); });