2009-10-04 102 views
2

我有一組jqueryui選項卡,點擊後可以動態加載其內容。它的效果很好,除了其中一個頁面本身使用jquery插件。加載時Jquery加載依賴於jquery插件的外部文件

  1. 持有標籤的主要頁面拋出一​​個錯誤,因爲有JS是指尚未加載元素(這些元素是在包含外部文件:這將導致兩個問題依賴插件的代碼)。

  2. 如果我將觸發插件功能的js嵌入到外部文件中,它位於主頁面的document.ready函數之外,因此無法使用。

基本上我在尋找一種技術,可以讓我阿賈克斯加載外部HTML文件到DOM而不是crapping出自己的主頁,因爲JS是已經有預期的HTML是尚未出現。

謝謝。

+0

你能提供代碼嗎? – 2009-10-04 20:47:50

回答

0

你需要封裝你的jQuery代碼在$(document).ready()函數中。如果你說的等待通過AJAX加載的代碼可能會或可能不會與父頁面同時加載(即,用戶必須單擊該選項卡來加載它,而不是它的默認加載),那麼你設計很糟糕,你必須重新思考這種方法。基本上,你的父頁面中不能有代碼引用不存在的DOM元素,並且直到你的用戶點擊一個標籤纔可能存在。

0

我還沒有使用它,但我認爲這是你在找什麼

Listen

這個插件帶來了乾淨明亮的解決方案,與動態加載內容的網站,或充滿事件綁定。 綁定,事件處理程序的Intead與匹配的選擇器一起註冊。 他們仍然可以爲新添加的內容工作。 這是通過使用事件委託來實現的,所以插件只能用於冒泡的事件