我有两个动作需要应用于一组DIV,但我需要在另一个完成之前完成一个循环。
这是我的代码:
$("div").each(function(){
//do stuff first
}).each(function(){
//do stuff next
});
但目前,do stuff next
在do stuff first
完成之前发生。我能做些什么来阻止这个?
完整脚本
$("div").each(function(){
if($(this).html() === "yes"){
$(this).fadeOut(time,function(){
$(this).parent().height(0);
});
}
}).each(function(){
if($(this).html() !== "yes"){
$(this).parent().height(25);
$(this).fadeIn(time);
}
});
答案 0 :(得分:0)
知道你想要淡入然后设置高度,这会做你需要的吗?
var divs = $('div');
divs.fadeIn(function () {
divs.height('200');
});
使用每个允许不同div的不同设置:
$('div').each(function () {
var div = $(this), toggle = true;
div.fadeIn(function () {
if (toggle = !toggle) {
div.height('200');
} else {
div.width('200');
}
});
});
看到你的代码片段我相信我现在得到了它:
var yesDivs = $('div').filter(function () {
return $(this).html() === 'yes';
});
yesDivs.fadeOut(time, function () {
yesDivs.parent().height(0);
$('div').filter(function () {
return $(this).html() !== 'yes';
}).fadeIn(time).parent().height(25);
});