2

Jqueryの異なるオブジェクト構造を使用してクリック応答を延期することは可能ですか?

だから私はクリックイベントを発生させ、長時間(っぽい)実行中のプロセス、遅延プロセスを呼び出します。延期されたプロセスが終了したときにのみクリックから戻りたい、つまり

$('form .modalPopupSearch').click(function (e) {
     //return once the dialogopen event is complete and not before!
     $("#divSearching").dialog('open');

});

これに追加promise()するだけでうまくいくと思いました:

$('form .modalPopupSearch').click(function (e) {
     //return once the dialogopen event is complete and not before!
     $("#divSearching").dialog('open');

}).promise();

しかし、そうではありません。これは可能ですか、それともこのように接続しないだけですか?

4

1 に答える 1

4

Deferredやのような非同期メカニズムの主なポイントの 1 つは、Promiseメインの JavaScript スレッドの実行を遅らせないことです。

いいえ、jQuery UIが閉じられるclickまでハンドラーの完了を待機させることはできません。dialogあなたのコードへの呼び出しが戻るのを待ちますがdialog(もちろん)、その呼び出しはダイアログを開くだけです。

代わりに、ハンドラーを完了させ (おそらくイベントの伝播やデフォルト アクションを停止させます)、ダイアログのコールバックを使用して、実行したい後続のアクションをトリガーします。

于 2013-07-23T14:29:53.027 に答える