我正在努力
循环遍历DOM中的每个DIV并应用一个效果(比如fadeOut()
),每个之间有一个时间空间。
从某种原因,这件事不想工作。
var stupid = -1000;
return_stupid = function(){
return stupid+=1000;
}
$(function(){
$("div").not("#wrapper").delay(return_stupid()).queue(function(){
$(this).fadeOut("slow");
$(this).dequeue();
});
});
编辑: 好吧,我发现了这个问题。 return_stupid()仅被称为ONCE,因为它不是.each()语句。
好吧,我不想使用每个(),它正在吃掉记忆!
任何解决方案?
答案 0 :(得分:0)
您可以使用如下的jQuery插件。它将在给定的间隔之间淡出每个匹配的元素。
$.fn.fadetraining = function(duration, delay) {
var $elements = this;
$elements.length && $elements.first().fadeOut(duration, function(){
$elements.slice(1).delay(delay).fadetraining(duration);
});
return $elements;
};
你可以像这样使用它:
$("div").not("#wrapper").fadetraining("slow", 1000);
我不明白为什么你不想使用.each()
。毕竟,几乎所有的jQuery函数都在内部使用它。
注意:这是我之前编写的jQuery插件$.fn.fadetrain
的衍生产品。
答案 1 :(得分:-1)
我认为你可能会使用延迟错误。尝试这样的事情:
$(".cell").animate({width:"100px",height:"100px"}, 3000).delay(1000).fadeOut();
我以JSFiddle为例。 http://jsfiddle.net/M9n8a/1/