當單擊create按鈕時,我將彈出的局部視圖CREATE
顯示爲彈出式視圖。呈現部分視圖時調用javascript函數
這意味着動態地將一個div附加到按鈕單擊的主視圖上。
這個div生成後,所有的元素都加載了,之後我想調用javascript函數。
我能找到的所有答案都是使用事件,但我的情況是不同的。我不加載使用("#div").load(URL, function(){});
我的div局部視圖格生成動態
請提出一些幫助
當單擊create按鈕時,我將彈出的局部視圖CREATE
顯示爲彈出式視圖。呈現部分視圖時調用javascript函數
這意味着動態地將一個div附加到按鈕單擊的主視圖上。
這個div生成後,所有的元素都加載了,之後我想調用javascript函數。
我能找到的所有答案都是使用事件,但我的情況是不同的。我不加載使用("#div").load(URL, function(){});
我的div局部視圖格生成動態
請提出一些幫助
JavaScript是同步執行。如果您使用jQuery構建「視圖」,然後將其插入到DOM中,那麼只需在將標記插入到DOM後執行「發佈後渲染」代碼即可。
$('#myContainer').append(someMarkup);
execSomePostRenderFunction();
如果您正在使用AJAX來加載來自服務器的局部視圖/ html內容,那麼你會使用load()
功能,並把你的帖子在回調渲染代碼。
$('#myContainer').load('route/to/Partial', execSomePostRenderFunction);
,或者您可以使用匿名函數:
$('#myContainer').load('route/to/Partial', function(){
//...do something here
});
你的問題是有點混亂,因爲你有問題標籤AJAX,但說你是不是加載局部視圖。你也可能想指定你正在使用的MVC框架,這樣有人可以給你更有針對性的指導。例如,ASP.NET MVC中的部分視圖是完全服務器端的技術,並且在頁面加載後呈現局部視圖的唯一方法(就像在按鈕單擊事件上一樣)是通過ajax和函數函數(你也可以使用$.get()
或$.ajax()
,但load()
更容易;這就是它被創建的原因)。
你是什麼意思的「動態生成」?你在JS中創建div,然後將其附加到頁面的主體? –
只需在追加/插入div後推遲您想要運行的代碼。它會讓DOM有時間讓div用於其他代碼。這假定你想運行的代碼影響div。 – Shilly