2012-10-11 20 views
3

我目前正在剝皮一個應用程序,除了一個CSS文件和JS文件外,我無法訪問標記或腳本,因此我可以添加自己的樣式和函數。不是我知道的理想設置,但相信我不是我的選擇。哦,這個網站上的所有內容都是通過AJAX請求生成的,很好。

無論如何,問題是我有很多Javascript需要在$(document).ready();上運行,但由於頁面從未真正重新加載(由於AJAX),沒有任何代碼被執行。

有沒有一種方法可以設置$(document).ready();中的所有功能,以便在AJAX調用完成後每次運行?

我已經在下面包含了內置的AJAX調用(我不能編輯)。

$.ajax({ 
    type: "POST", 
    dataType: "html", 
    url: url1, 
    data: pars, 
    success: function(data) 
    { 
    $('#thisContent').html(data); 
    loadMenu(urlToLoad); 
    } 
}); 
+1

你可以在成功處理程序的最後調用$(document).ready()處理程序。 –

回答

4

是的,你可以添加一個處理程序.ajaxComplete()。它在每個Ajax調用完成後調用(成功或錯誤)。

延伸閱讀:Ajax Events

+0

行動!對不起,我寫了同樣的事情。我投了你;) –

+0

正是我在找什麼。非常感謝 :) –

1

我覺得this能對您有用。

2

如果你想要的是爲$(document).ready([handler])事件的處理程序再次調用你可以只使用一個名爲功能的處理程序,並說明:

$(document).ready(function readyHandler() 
{ 
}); 
//and: 
$.ajax({....,success:readyHandler}); 

不過,就個人而言,我建議你想想這個。例如,如果在readyHandler函數中調用$.ajax,您將創建一個死鎖。你也很有可能一遍又一遍地做出同樣的約束。我不知道你在努力達成什麼目標,但我確信有更好的方法可以做到。 (如果我確實正確地理解了你的問題)

相關問題