我正在使用Ajax(以及jQuery和CoffeeScript)在我創建的新網站中加載頁面。對於導航菜單然後我用jQuery函數load
加載網頁(即內容)這樣的只是其中的一部分(從/page1
):在頁面內容加載Ajax後加載Javascript
$('a').click ->
$('#container').load '/page2 #content'
false
的問題,這是我在JavaScript代碼page1
(或更準確地說,在一個模板文件中)在站點上是全局的(由於資產管道,因爲我使用的是Rails 3.1)。此代碼將位於page2
的DOM元素中的某些操作綁定到事件(這是否是正確的術語?)。但是,由於這個腳本是在第一次加載(這很容易可以page1
)的頁面上運行,然後結合這些動作元素的腳本將在page1
執行,因而DOM元素,他們實際上應該是綁定(在page2
)將不會被觸及。
現在,我知道一些方法可以解決這個問題,但我不喜歡他們。其中之一就是將這個動作/事件綁定到一個函數中,然後在用Ajax加載page2
後調用這個方法,但是這需要我在我的頁面加載邏輯中引入一個特殊情況,在這裏我加載綁定函數在頁面加載之後綁定元素,或者在我調用該函數的page2
內容中有腳本。
我寧願不與前一種方法去,因爲我有加載頁面的一個更一般的方式(通過使用<a>
標籤的href
屬性),並引入在頁面加載特殊情況下只是uglifies這一切。後者的解決方案相當不錯,但我不願意將<script>
標籤放入我正在檢索的頁面內容中。我喜歡將內容與行爲分開,我認爲這可能會混合一點點。
所以,我真正想知道的是什麼是解決這個問題的好辦法。如果有人知道如何去做這件事,那麼我會歡迎任何建議。
哇,剛剛通過的文件閱讀,似乎正是我要找的!非常感謝你,我會馬上研究它,並檢查它是否有效。 :-) – sindrenm
很高興幫助! – vzwick