最近從Prototype切換到jQuery,我正在努力解決一些基本問題。如何在jQuery中執行本地全局ajax事件?
我在我的應用程序中使用了幾個AJAX請求;對於這些請求中的95%,我想要執行一些全局事件,例如顯示或隱藏加載指示符。除全局功能外,每個請求在完成後還應執行一些自定義代碼。
好像當地的Ajax events覆蓋全球的一旦設置好了。例如,請看下面的代碼:
// 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();
});
在這種特定情況下,本地完成()事件似乎停止執行全球ajaxComplete()事件。
是否有任何方式執行本地作爲全球ajax事件?
我還沒有嘗試過,但它會毫無疑問的工作。這需要我爲每個AJAX請求使用這個結構,但這並不能真正改善我的代碼。 – 2009-06-03 12:08:46