在ASP.NET MVC中,在通過Ajax加載的局部視圖上運行Javascript的首選模式是什麼?如何處理ajax加載的部分視圖中的javascript?
例如,假設您需要在部分視圖中連接一些點擊事件。
當然,在局部視圖中放置類似的東西是行不通的,因爲文檔就緒事件在部分視圖加載Ajax後不會觸發。
<script type="text/javascript">
$(function() {
$("a.foo").click(function() {
foo();
return false;
});
});
</script>
我想這樣的東西可能會起作用,但它是否安全?
<script type="text/javascript">
$("a.foo").click(function() {
foo();
return false;
});
</script>
我一直在使用一直到裝載部分之後,從我父視圖運行任何JavaScript,這樣的模式:
$.get(url, function(html) {
$("#partialDiv").html(html);
// Now that the partial has loaded...
RegisterClicks();
});
但我一直通過this例如工作,並注意到他們只是簡單地把他們的點擊註冊代碼內聯在局部視圖中。
這是一個通常安全的模式嗎?我如何確保在我的腳本運行之前,部分視圖的DOM已經完成加載?
這是一個很好的問題的一部分。希望這篇文章會幫助http://stackoverflow.com/questions/3619484/can-i-add-javascript-dynamically-to-an-existing-script-element和這個http://www.hunlock.com/blogs/ Howto_Dynamically_Insert_Javascript_And_CSS – 2013-02-12 18:17:39
要麼我做你的第二個例子,沒有問題,但我避免它,因爲如果部分重複然後JavaScript不必要地重複,也不會被縮小。相反,我把JavaScript放在一個外部的* .js文件中,並且父頁面必須包含它(並且因此如果父頁面通過捆綁/縮小框架包含它將被縮小)。我希望Partials具有某種OnLoadJavascript或支持的部分,但不幸的是他們沒有。 – AaronLS 2013-02-12 20:40:20
我們確實需要這個:http://aspnet.uservoice.com/forums/41201-asp-net-mvc/suggestions/2204831-be-able-to-use-cumulative-section-declaration – AaronLS 2013-02-12 20:41:46