JQuery ждать .Animate, а затем перейти к месту привязки - PullRequest
1 голос
/ 28 сентября 2010

Я использую jquery animate, чтобы сдвинуть div со страницы, это отлично работает, но я хотел бы изменить animate на:

  1. происходит только один раз (потому что если кто-то дважды щелкнет по нему, div возвращается), и
  2. дождитесь окончания анимации, прежде чем следовать href.

Это код, который выполняет слайд div:

$(".choose").click(function(event) {
    var $contentDiv = $("#content");

    $contentDiv.stop().animate({
        marginLeft: parseInt($contentDiv.css('marginLeft'),10) == 0 ?
        $contentDiv.outerWidth() : 0
    });
});

1 Ответ

3 голосов
/ 28 сентября 2010

Вы можете вызвать event.preventDefault(), чтобы предотвратить действие щелчка по умолчанию, а затем выполнить ручное перенаправление, установив location.href после анимации с помощью обратного вызова ...

$(".choose").click(function(event) {
    var $contentDiv = $("#content");
    var redir = $(this).attr("href");

    $contentDiv.stop().animate({
        marginLeft: parseInt($contentDiv.css('marginLeft'),10) == 0 ?
        $contentDiv.outerWidth() : 0
    }, function() { location.href = redir; });

    event.preventDefault();
});
...