我知道在jQuery 1.4.x中有一个方法delay()。我们可以像这样使用它:
$('#block').slideUp().delay(2000).slideDown();
它很有效。但我想修改document.title
,但这种结构不起作用:
$('title').html('New title 1').delay(2000).html('New title 2');
当您运行此代码时,New title 2
将避免任何延迟。如何解决?
答案 0 :(得分:4)
使用setTimeout回调:
$('title').html('New title 1');
window.setTimeout(function() {
$('title').html('New title 2');
}, 2000);
$.fn.delay
会延迟动画队列。它不会延迟正在运行的脚本。
答案 1 :(得分:1)
如果您想使用.delay()
和.queue()
,可以执行以下操作:
$('title').html('New title 1').delay(2000)
.queue(function() { $(this).html('New title 2'); });
虽然setTimeout
像陌生人在这种情况下似乎更简单。
答案 2 :(得分:0)
如果你要使用Nick Cravers方法,请不要忘记调用$(this).dequeue(),否则你的队列会阻止所有其他人。
$(this).val("newTitle1")
.effect("pulsate", { times: 3 }, "slow")
.delay(1000)
.queue(function() {
$(this).val("newtitle 2")
.effect("pulsate", {times: 1}, "slow");
$(this).dequeue(); //dont forget to do this
});