2010-08-30 16 views
1

我有一個總結實體信息的操作。該操作的視圖包含處理摘要UI的腳本。我也有多次加載這個視圖的行爲(總結多個實體實例)。似乎每次在頁面上加載動作視圖時,jQuery document.ready函數都會觸發。這是正確的行爲嗎?當通過RederAction方法加載腳本時,document.ready何時被觸發?

例如:

我有一個具有腳本來完成所有的花哨的UI東東SummaryController.Summarize(實體物品)的行動。 我也有一個JobController.Index()操作,將5個實體實例傳遞給它的視圖。該視圖調用RenderAction(「Summarize」,「Summary」,entity)來顯示每個實體。不過,我期待document.ready函數僅在所有Summarize操作已加載(以鏈接事件)時觸發,但每次都觸發,因此我的事件被多次訂閱。希望這是有道理的。

回答

1

RenderAction方法輸出操作返回的原始HTML。
瀏覽器不知道HTML來自不同的操作。

因此,每次致電$(document).ready將分開執行。

0

在發送給客戶端之前,HTML會被彙編。因此,「最終」頁面將與其中的每個控件一起發送(通過RenderAction呈現)。

因此,頁面中呈現的每個用戶控件都將擁有自己的js代碼片段。

document.ready註冊了一個處理程序,在文檔準備就緒時調用。每次調用該方法時,都會附加一個新的處理程序。這就是爲什麼它不止一次被解僱的原因。

希望這會有幫助

相關問題