如何更改<title>延迟?</title>

时间:2010-03-04 21:53:32

标签: javascript jquery dom

我知道在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将避免任何延迟。如何解决?

3 个答案:

答案 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
                });