1

2 つの jQuery 関数があります。以下の最初のものを最初に実行したいのですが、その関数が終了したら、もう一方を実行します。通常、コードの最初のビットに関数を追加しますが、このブロックでそれを行う方法や、それが正しい方法かどうかはわかりません。

要するに、このコードを実行したいのです...

$('#setupPanel').modal({
        backdrop: "static",
        keyboard: false
});

この関数の実行が終了した後...

$('html, body').animate({
        scrollTop: $("#header_wrap").offset().top
}, 600);

編集: これが関数全体です...

$(setUp).click(function () {
    $('html, body').animate({
        scrollTop: $("#header_wrap").offset().top
    }, 600);
    $('#setupPanel').modal({
        backdrop: "static",
        keyboard: false
    });
});
4

1 に答える 1

6

メソッドを試すことができますpromise()

$(setUp).click(function () {
    $('#setupPanel').modal({
        backdrop: "static",
        keyboard: false
    }).promise().done(function() {
        $('html, body').animate({
            scrollTop: $("#header_wrap").offset().top
        }, 600);    
      });
});

アップデート:

.animate()メソッドのコールバック関数を使用することもできます:

$(setUp).click(function () {
        $('html, body').animate({
            scrollTop: $("#header_wrap").offset().top
        }, 600, function() {
          $('#setupPanel').modal({
              backdrop: "static",
              keyboard: false
          })
      }});
});
于 2012-06-29T00:34:24.180 に答える