Ajax呼び出しが完了するまでタブ切り替えを防ぎたい。これを達成する方法はありますか?現在(デフォルトでは)別のタブをクリックすると、そのタブに切り替わります。Ajax呼び出しが成功/完了するまでこれを防ぎたい。参考: Jquery Tabs-3 プラグインを使用しています。私を助けてください。
3 に答える
他のコメント ( By saying "hold the control", I mean to say that when 'tabsselect' even is triggered, next event which is 'tabsshow' shouldn't be triggered until ajax request gets complete/succeed
) に回答するには、直接回答することはできません。
ただし、をキャンセルすることはできtabsselect
ますが、ユーザーが切り替えようとしたタブのインデックスを変数に格納します。次に、AJAX 要求が終了したら、変数がタブ インデックスを保持しているかどうかを確認し (ユーザーがタブを切り替えなかった場合)、保持している場合はそのタブに切り替えます。後で別の AJAX リクエストを行う場合に備えて、変数を必ずリセットしてください。
jQuery UI Tabsを使用していると思います。そうでない場合は、使用しているものにリンクしてください。
その場合は、ロードの開始時に呼び出してタブを無効にし、ロードの完了後に.tabs('disable', index)
呼び出して再び有効にすることができます。.tabs('enable', index)
インデックスの配列を渡すこともできます。
あなたのコメントに答えるために、
$('#tabs > ul').bind('tabsselect', function(event, ui) {
if(inAjaxRequest)
return false;
//Do whatever you're already doing here
return true;
});