使用setTimeout延迟我的脚本

时间:2012-02-29 18:03:03

标签: javascript jquery settimeout

我正在尝试做什么:延迟我的脚本将特定哈希附加到URL。

为什么我这样做:我有一个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);

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用animate的回调。动画完成后会触发:

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

答案 1 :(得分:1)

您可以在动画功能中提供回调,动画完成后会立即触发:

像这样:

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

http://api.jquery.com/animate/