2012-02-29 90 views
0

我想要做的:延遲我的腳本附加一個特定的哈希到URL。延遲我的腳本與setTimeout

爲什麼我這樣做:我有一個jQuery動畫是(並且必須)在追加URL之前觸發。

我已閱讀了setTimeout,但我一直無法讓它工作。我以爲我可以在動畫發生後延遲,但我沒有看到這條路線上的很多文檔。相反,我試圖採用拖延腳本中下一行代碼的常見方式,這恰好是URL追加代碼。爲了更好的衡量,我已將動畫和附加代碼放在下面。謝謝你的幫助。

function animate() { 
    $(".class").animate({height: "100%"}, 
    $(".class").addClass("open"); 
} 

animate(); // animate the bar up. 

//append the url with the comment number and a hash. 
var new_hash ="#"+split_comment_number; 



var delay = setTimeout(function() {window.location.hash = new_hash;},1500); 
+0

任何使用了http://api.jquery.com/delay/? – mplungjan 2012-02-29 18:04:29

回答

2

最簡單的方法是隻使用animate回調。一旦動畫完成,將火:

$(".class").animate({height: "100%"}, 5000, function(){ 
    // DO IT HERE 
}); 
+1

這兩者都比想知道時機是否受限制更容易也更準確。 – j08691 2012-02-29 18:11:21

+0

得到它的工作。謝謝。 – tandy 2012-02-29 18:18:55

1

您可以在動畫功能提供一個回調,將盡快完成動畫火:

像這樣:

$(".class").animate({height: "100%"}, 1000 /* duration */, function(){ /*Do something*/ });