我可以延迟jQuery addClass吗?
有没有办法延迟jQuery的我可以延迟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
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;
}