我有一個簡單的自定義選項卡模塊,該模塊使用AJAX請求加載選項卡(通過$(elem).load()
)。在每個使用AJAX加載的頁面上,我都有一些JavaScript。第一次加載頁面時(通過URL的直接輸入,而不是AJAX),javascript會完全啓動。當我通過AJAX選項卡離開頁面時,頁面中的JavaScript不再被加載。jQuery - 當使用AJAX加載內容時document.ready不會觸發
有什麼辦法可以強迫他們執行?
我有一個簡單的自定義選項卡模塊,該模塊使用AJAX請求加載選項卡(通過$(elem).load()
)。在每個使用AJAX加載的頁面上,我都有一些JavaScript。第一次加載頁面時(通過URL的直接輸入,而不是AJAX),javascript會完全啓動。當我通過AJAX選項卡離開頁面時,頁面中的JavaScript不再被加載。jQuery - 當使用AJAX加載內容時document.ready不會觸發
有什麼辦法可以強迫他們執行?
domeready事件只在初始dom準備就緒時觸發(如名稱和jquery-api建議)。
如果你想使用jquerys load()並且在加載完成後觸發一個函數,你必須使用回調函數(according to the api)。
,如果你想要做的domready中和負載事件同樣的事情,最好的方法是定義一個新的功能:
function dostuff(){
// do some stuff here
}
和火在這兩種情況下,這種功能:
$(function(){ // domready | shortcut for "$(document).ready()"
dostuff();
})
$('#something').load('script.php', function() { // callback on load()
dostuff();
});
將您的$(document).ready()
代碼放入新方法中。我們稱它爲methodA
。現在從$(document).ready()
稱爲methodA
。其次,在ajax請求成功後調用相同的方法。這應該可以解決你的問題。