2012-11-13 134 views
3

我正在監聽ajaxStart()和ajaxStop()來顯示/隱藏一個微調,我正在編寫服務器時在JS中做一些模擬AJAX的東西。它只是調用一個函數來用setTimeout()生成模擬數據。現在我只是手動調用微調器上的hide()和show(),但我真的很想告訴JQuery何時啓動並停止我的「請求」,並讓事件經過這種方式,所以我不會不小心隱藏()微調器,而真正的 ajax請求仍在後臺進行。如何僞裝JQuery中的AJAX開始/結束事件?

這可以輕鬆完成嗎?

編輯:這是我看中了,關鍵是保持JQuery.active計數代碼:

function fakeAJAX(f) { 
    if(jQuery.active++ === 0) { 
     jQuery.event.trigger("ajaxStart"); 
    } 
    setTimeout(function() { 
     f(); 
     if(!(--jQuery.active)) { 
      jQuery.event.trigger("ajaxStop"); 
     } 
    }, Math.round(Math.random() * 3000 + 250)); 
} 
+0

爲什麼不寫一個模擬Ajax響應者。幾乎所有的服務器端語言都不會超過10行代碼。 – shaun5

回答

5

按照sources你只需要調用:

jQuery.event.trigger("ajaxStart"); 

jQuery.event.trigger("ajaxStop"); 

相應地。

http://jsfiddle.net/zerkms/7RVbz/

+0

我不知道我可以如此輕鬆地觸發一個沒有DOM對象的事件,並將其拾起。作品款待,歡呼:) – Sophistifunk

相關問題