Я займусь регистром, запуском и отменой привязки пользовательских событий.
jQuery имеет все инструменты, необходимые для регистрации, привязки и отмены привязки к пользовательским событиям.
Ниже приведен пример подключения двух div к пользовательскому событию customAjaxStart. Затем я могу вызвать эту функцию, и оба обработчика будут вызваны.
Quick Demo Здесь - Включите консоль firebug / ie8.
1011 * например *
$( function() {
$('#div1').bind('customAjaxStart', function(){
console.log('#div1 ajax start fired');
$(this).fadeTo('slow', 0.3);
});
$('#div2').bind('customAjaxStart', function(){
console.log('#div1 ajax start fired');
$(this).fadeTo('slow', 0.3);
});
//fire the custom event
$.event.trigger('customAjaxStart');
//unbind div1 from custom event
$('#div1').unbind('customAjaxStart');
//again trigger custom event - div1 handler will not fire this time
$.event.trigger('customAjaxStart');
});
Взяв вышеизложенное в качестве примера, я бы вызвал customAjaxStart из глобального ajaxStart. Любые слушатели будут запускаться автоматически всякий раз, когда собирается сделать вызов xhr (идеально для отключения ваших виджетов или показа загрузочного GIF и т. Д.), Например,
$.ajaxStart( function(){
$.event.trigger('customAjaxStart');
});