有跡象表明,我把這種方式的幾個jQuery UI的功能:如何在AJAX內容加載後重新附加jQuery函數?
jQuery(document).ready(function(){
jQuery(".accordion").accordion();
});
但我的頁面是基於AJAX和某些網頁可能使用手風琴,有些人可能不使用它。有30多個其他功能需要重新連接,這是一個有問題的開發任務。有沒有什麼聰明的方法來解決這個問題,以便每個新的.accordion
都能自動連接這個附件?
可能的解決方案,以及爲什麼他們會無法正常工作:
- 觸發AJAX調用完成文檔準備好將是理想的,但是這是不可能有
load()
- 是不是一種選擇,因爲它是一個CMS,用戶可以安裝插件 - 這意味着插件只能使用未知函數
jQuery(document).ready();
- 重新附加函數
ajaxComplete
- 未知函數的數量未知,如果不在每次安裝或卸載jQuery時修改AJAX腳本插件
您正在構建一個單一的webapp?你有沒有考慮像Backbone這樣的框架? – Mathletics
仔細調用'$(「。accordion」)。accordion()'多次,因爲插件無法正確處理同一元素上的多個初始化。爲了安全起見,我建議只限制對新內容的呼叫,例如, '$(「#newContent .accordion」)。accordion()' – Mahn
@Mahn好主意! – Atadj