所以我有一个空的 div 设置为 display:none ,名为 id="c1"。
我正在尝试将其排队,以便它会淡入并显示: 2秒
然后 1 秒后它会说: 1秒
然后将淡出并且页面重定向。
$('#c1').html('2 seconds').fadeIn('fast').delay(800).html('1 second').delay(800).fadeOut('fast');
但是,当我运行它时,我只看到“1秒”,然后它就消失了。我根本看不到 2 秒消息。就好像 jquery 只监听最后一个“html”事件。
我也尝试过在 div 中输入“2 秒”作为 html 中的默认文本。那也行不通。页面加载后仍然显示“1 秒”。
编辑解决方案
你可以这样做:
$('#c1').html('2').fadeIn('fast').delay(800).queue(function () {$(this).html('1');$(this).dequeue();}).delay(800).fadeOut('fast');
最佳答案
你只能delay()动画,不能像html()这样的其他函数,它们是立即执行的。
对 html() 函数使用超时,或者将它们放在动画回调中。
$('#c1').html('2 seconds').fadeIn(1000, function() {
$(this).html('1 second').fadeOut(1000);
});
关于css - 排队定时 jquery 事件无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340889/