jQuery延迟时间似乎是错误的

jQuery延迟时间似乎是错误的,jquery,delay,Jquery,Delay,我希望一个div淡出,然后他们的div是一个短暂的停顿,然后另一个div淡入 这是我的尝试,但ot不起作用。淡出动画在淡出动画完成之前开始 $('.nav .filters').fadeOut('200'); $('.nav .map-r').delay('300').fadeIn('200'); 真正奇怪的是,如果我将每个周年纪念日延长10倍,效果会很好: $('.nav .filters').fadeOut('2000'); $('.nav .map-r')

我希望一个div淡出,然后他们的div是一个短暂的停顿,然后另一个div淡入

这是我的尝试,但ot不起作用。淡出动画在淡出动画完成之前开始

    $('.nav .filters').fadeOut('200');
    $('.nav .map-r').delay('300').fadeIn('200');
真正奇怪的是,如果我将每个周年纪念日延长10倍,效果会很好:

    $('.nav .filters').fadeOut('2000');
    $('.nav .map-r').delay('3000').fadeIn('2000');
应该将fadeIn()放在的回调中,以便在淡出完成时执行

$('.nav .filters').fadeOut(200, function(){
   $('.nav .map-r').delay(300).fadeIn(200);
   //i'm not sure this works, if it doesn't just use setTimeout()
   //setTimeout(function(){$('.nav .map-r').fadeIn(200)}, 300);
});

我想这就是答案,我只是复制并粘贴了我的评论:

fadeOut()是否将数字作为参数而不是表示数字的字符串文字?请尝试删除单引号。是的,单引号仅用于“快”、“慢”等,否则参数应为无引号的数字


fadeIn()和delay()以及toggle()等也是如此。您可以将其称为jQuery约定。

这些在我看来是一样的;-)fadeOut()是否将数字作为参数,而不是表示数字的字符串文字?尝试删除单引号。是的,事实上,单引号仅用于“快”、“慢”等,否则参数应该是一个无引号的数字。对我来说很好-只需删除间隔周围的引号。。。您需要将第一个
setTimeout()
参数包装在匿名函数中,或者立即调用它,并尝试将返回值作为回调传递给setTimeout。@ThiefMaster是的是的,我更正了这一点,我只是不知道delay()是否可以这样使用
$('.nav .filters').fadeOut(200, function(){$('.nav .map-r').delay(300).fadeIn(200);});