2011-01-20 37 views
11

我希望我的應用程序能夠通過我的應用程序JQuery腳本來評估所有AJAX加載的內容,這與正常加載的內容相同。例如JQuery的通過掃描進行選擇的AJAX加載的內容,比如「模式框鏈接」等在ajax加載的內容上重新運行應用程序的Javascript

我所有的JavaScript是在正常的document.ready,這對於普通的HTTP頁面加載正常工作:

$(document).ready(function(){ 
    // my apps javascript 
}); 

我想使用類似.ajaxComplete的東西來重新運行document.ready中包含的所有內容,以評估新加載的jQuery選擇器的AJAX內容。

$(document).ajaxComplete(function(){ 
    // Re-run all my apps javascript 
}) 

是否有一些代碼可以放在.ajaxComplete中?

希望這是有道理的,請讓我知道如果它不,我會編輯問題的詳細信息。

+0

你能解釋更多關於你在找什麼嗎?我覺得我的答案仍然缺少一些東西,我想確保你找到你想要的答案。 – jmort253 2011-01-20 02:13:18

+0

@ jmort253 - 感謝您的幫助,亨特的回答幾乎是我想要了解的。 – 2011-01-20 02:44:46

回答

12

你可以封裝在document.ready一切都變成一個功能,只需再次調用該函數重新綁定

或...

一個更好的辦法是利用live()delegate()的jQuery方法,以便與這些選擇器匹配的所有當前和將來的元素也將被綁定到這些事件。

例如使用live()http://api.jquery.com/live/

$('.clickme').live('click', function() { 
    //all elements that exist now and elements added later 
    //with this class have this click event attached 
}); 

例如使用delegate()http://api.jquery.com/delegate/

$("table").delegate("td", "hover", function(){ 
    //all current and future td elements in all current tables 
    //have this hover event attached 
}); 
1

你需要做的是在一個函數,而不是匿名定義代碼。匿名函數不可重用,但如果您編寫函數,那麼該函數可以綁定到多個事件。

相關問題