2012-09-26 97 views
0

我有以下腳本,它的工作原理相當漂亮,顯示當AJAX的東西是裝:HTML加載消息

$("#divLoading").ajaxStart(function() { 
    $('#divLoading').show(); 
}); 

$("#divLoading").ajaxComplete(function() { 
    $('#divLoading').hide(); 
}); 

不過,這似乎開始一個click事件之後的延遲,並且顯示的內容之前結束在屏幕上,即下面是exagerated,只是爲了說明問題:

如果我點擊一個按鈕,用於執行一些ajaxy,加載DIV點擊按鈕後顯示5秒鐘。 div在屏幕上停留10秒,div消失,內容改變在div消失5秒後發生。

任何想法,爲什麼這種情況正在發生,我怎麼能得到消息的任何點擊事件發生時立即顯示自己,只有消失在HTML加載完成後在屏幕上?

回答

1

這是因爲該功能的實際Ajax調用不是之前和之後您單擊處理程序和回調其hapen在Ajax調用的任何一端時執行。

如果你看看你的代碼,你可能在ajax調用的按鈕的click事件中做了一些準備ajax調用,然後在回調中ajax調用完成了,所以消息被隱藏,但你仍然有代碼要完成。

0

我不是JQuery的那個親,但我有類似的情況下,當我需要的東西要執行的AJAX調用是在我的項目建成後,東西,它看起來像它的工作是這樣的:

$(document).ajaxStop(function() { 
      my_jquery_stuff(); 
});