我可以延迟jQuery addClass吗?

我可以延迟jQuery addClass吗?,jquery,delay,addclass,Jquery,Delay,Addclass,有没有办法延迟jQuery的addClass()?例如,此代码 $('#sampleID').delay(2000).fadeOut(500).delay(2000).addClass('aNewClass'); 当我加载页面时,它的id“sampleID”上已经有类“aNewClass”。如何解决这个问题?我想要的是addClass将在它结束淡出()后发生。您应该使用回调 $('#sampleID').delay(2000).fadeOut(500,function(){ $(this

有没有办法延迟jQuery的
addClass()
?例如,此代码

$('#sampleID').delay(2000).fadeOut(500).delay(2000).addClass('aNewClass');

当我加载页面时,它的id“sampleID”上已经有类“aNewClass”。如何解决这个问题?我想要的是addClass将在它结束淡出()后发生。您应该使用回调

$('#sampleID').delay(2000).fadeOut(500,function(){
   $(this).delay(2000).addClass('aNewClass');
});

我想要的是addClass will 结束淡出()后发生

您可以这样使用:

$('#sampleID').fadeOut(500, function(){
  $(this).addClass('aNewClass');
});

您不能使用
delay
执行此操作,因为它只影响效果队列。如果未使用队列实现,则不会“暂停”后续代码的执行

您需要通过以下方式执行此操作:


这将使用的
complete
回调,然后将函数设置为在未来2秒内执行。

您不能直接延迟addClass调用,但是如果您将其包装在以函数作为参数的队列调用中,则可以这样做

$(this).delay(2000).queue(function(){$(this).addClass('aNewClass')});

请参阅本文:

您还可以使用setTimeout和CSS转换:

setTimeout(function() {
    $('#sampleID').addClass('aNewClass');
}, 2000);
还有CSS

#sampleID {
transition: opacity 1s ease;
opacity: 0;
}

#sampleID.aNewClass {
opacity: 1;
}

您尚未替换对
delay
@lonesomeday:的非功能性调用,这在代码中应该无关紧要,但感谢您完成了:)
#sampleID {
transition: opacity 1s ease;
opacity: 0;
}

#sampleID.aNewClass {
opacity: 1;
}