ajaxリクエストの処理中に、ボタン(実際にはdiv)のテキストを「Working」に変更したいと思います。また、ajaxプロセスが終了するまで、それらが再度クリックされないようにしたいと思います。その場合、ボタンを有効にして、テキストを「保存」に戻したいと思います。
これを処理するために、JQueryの.ajaxStart()および.ajaxStop()グローバルイベントを使用することを考えていました。このようなもの:
$(document).ajaxStart(function () {
$('#btnSave').each(function() {
$(this).data('eventsbackup', $(this).data('events'));
$(this).data('events', null);
$(this).html('Working...');
});
});
$(document).ajaxStop(function() {
$('#btnSave').each(function () {
$(this).html('Save');
$(this).data('events', $(this).data('eventsbackup'));
$(this).data('eventsbackup', null);
});
});
このアプローチに何か問題がありますか?unbind()を使用する代わりに.data('event')をnullに設定することについて少し心配していますが、ボタンにバインドされているイベントの数がわかりません。このアプローチは問題を引き起こす可能性がありますか?