Ajaxリクエストの開始時にdivを無効にして(クリックを受け付けないように)、Ajaxの完了時に再度有効にする必要があります。私はまた、プロセス中に表示されるロードGIFをしたい。私はこれがajaxStart
とajaxStop
を使って達成できると思います。しかし、私が正しければ、これらは起動または停止するAjax要求に対して起動します。ここで問題が起こる。私はページに複数のdivを持っており、これらの誰かがAjaxリクエストを引き起こす可能性があります。クリックした「特定のdiv」を無効にする/有効にするにはどうすればいいですか?ajaxStart
、ajaxStop
またはその他の方法を使用して、対応する読み込み中のGIFを表示/非表示にするにはどうすればいいですか?これにclickイベントのバインディング/バインド解除が含まれる場合は、jQuery on()
との互換性を維持する必要があることに注意してください。Ajaxのdivの開始を無効にしてからAjaxで再度有効にしてください
HTMLは次のようになります。
$('body').on('click', '.button', function(e){
e.preventDefault();
$.ajax({
url : ajaxVars.ajaxurl,
context : this,
type :'POST',
async : true,
cache : false,
timeout : 1000,
data : { action : 'test_action' },
success : function(response) {
if (response == 1) {
$(this).toggleClass('white').toggleClass('green');
}
},
error : function() {
alert(error);
}
});
});
よろしく、ジョン
返信用のThx。 removeClassは.buttonクラスを削除しません。ただし、addClassは機能します。これはおそらく.buttonがon()イベントのセレクタとして使用されているのでしょうか? – John
@Johnごめんなさい。これは間違っています:.removeClass( '。button')これは正しいです:.removeClass( 'button')私は自分の投稿を編集しました。 – EmRa228
これは機能します!ソリューションのThx。 – John