最近、PrototypeからjQueryに切り替えて、いくつかの基本的な問題に取り組んでいます。
アプリケーションでいくつかの AJAX 要求を使用します。これらのリクエストの 95% について、ローディング インジケーターの表示または非表示など、いくつかのグローバル イベントを実行したいと考えています。グローバル機能とは別に、すべてのリクエストには、完了後に実行されるカスタム コードも必要です。
一度設定すると、ローカルのAjax イベントがグローバルのイベントをオーバーライドするようです。たとえば、次のコードを参照してください。
// global events
$('#loader').bind('ajaxStart', function() {
// in this particular example, the ajaxStart() works fine,
// as it has not been overridden
Loader.enable();
}).bind('ajaxComplete', function() {
// this section will not execute. when the local complete()
// is removed, it will execute just fine
Loader.disable();
} );
// local ajax event
$.ajax({
type: $(element).attr('method'),
url: $(element).attr('action'),
data: $(element).serialize(),
global: 'true',
complete: function(data) {
if (params.target && $('#' + params.target)) {
$('#' + params.target).html(data.responseText);
}
Behaviour.apply();
});
この特定のケースでは、ローカルの complete() イベントがグローバルの ajaxComplete() イベントの実行を停止しているように見えます。
ローカルとグローバルの ajax イベントの両方を実行する方法はありますか?