1

最初にメッセージを表示してからページをリダイレクトしたい:

toastr.success('Your report has been submitted successfully.');
window.location = '/Report';

ただし、上記のコードでは、2 つのステートメントを同時に実行できます。その結果、toastr メッセージが表示される前にリダイレクトが行われ、時間がかかります。

$.when(...).done(...)この状況のようなものはありますか?

- - アップデート - -

toastrをご存じない方のために説明すると、Webページにメッセージを表示するためのライブラリです。

もちろん、タイマーを設定すると機能します。しかし、最初のステートメントが完了した後に 2 番目のステートメントを実行できるエレガントな方法はありますか?

4

3 に答える 3

4

setTimeout を使用できます:

toastr.success('Your report has been submitted successfully.');
setTimeout(function(){window.location = '/Report';}, 2000);
于 2012-09-12T15:06:14.410 に答える
0

toastronHiddenオプションを使用して多くの成功を収めました。これは基本的に、リダイレクト URL を設定できるイベント コールバックであり、トーストが閉じるか非表示になったときに発生します。

// Notify the user of success and redirect when the toast closes
toastr.options.onHidden = function () {
     window.location.href = <YOUR REDIRECT URL>;
};

// Fire the success toast which is bound to the onHidden function                    
toastr.success('Success!<br/><br/>You\'ll now be automatically redirected to your current items.', 'Download Success', { timeOut: 3000, closeButton: true, positionClass: 'toast-bottom-right', progressBar: true });
于 2016-12-03T00:32:19.807 に答える
0

関数の完了後に実行するコールバックとして関数を渡すことができます。この同様の質問に対する選択された回答を参照してください: 3 つの関数を次々に実行するには、どのように関数を呼び出す必要がありますか?

于 2013-10-01T13:56:48.637 に答える