Задержка моего сценария с помощью setTimeout - PullRequest
0 голосов
/ 29 февраля 2012

Что я пытаюсь сделать: отложить мой скрипт от добавления определенного хеша к 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 ]

2 голосов
/ 29 февраля 2012

Самый простой подход - использовать обратный вызов animate.Он будет срабатывать после завершения анимации:

$(".class").animate({height: "100%"}, 5000, function(){
    // DO IT HERE
});
1 голос
/ 29 февраля 2012

Вы можете предоставить функцию обратного вызова в вашей функции анимации, которая сработает, как только анимация завершится:

примерно так:

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

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

...