最近从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事件执行?