2010-03-04 40 views
2

我知道在jQuery 1.4.x中有一个方法delay()。我们可以这样使用它:如何更改<title>延迟?

$('#block').slideUp().delay(2000).slideDown(); 

它很好用。但我想修改document.title,但这种结构并不工作:

$('title').html('New title 1').delay(2000).html('New title 2'); 

当你运行该代码标题是New title 2避免任何延误。如何解决它?

+0

请不要污蔑你的问题。 – Louis 2014-11-03 01:35:03

回答

4

使用回调与setTimeout

$('title').html('New title 1'); 

window.setTimeout(function() { 
    $('title').html('New title 2'); 
}, 2000); 

$.fn.delay把一个延迟的动画队列。它不会延迟正在运行的脚本。

1

如果你想使用.delay().queue(),你可以这样做:

$('title').html('New title 1').delay(2000) 
      .queue(function() { $(this).html('New title 2'); }); 

虽然setTimeout像一个陌生人拥有似乎是在这种情况下,更简单。

0

不要忘记打电话给$(this).dequeue(),如果你打算使用Nick Cravers方法,否则你的队列会阻止所有其他人。


$(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 
       });