2016-07-11 4 views
1

作成ボタンをクリックすると、部分ビューCREATEがポップアップ表示されます。パーシャルビューがレンダリングされたときにjavascript関数を呼び出す

これは、ボタンクリック時にメインビューにdivが動的に追加されることを意味します。

このdivが生成され、この内部のすべての要素がロードされた後、私はjavascript関数を呼び出したいと思います。

私が見つけることができるすべての回答は​​イベントを使用していますが、私のシナリオは異なります。私は("#div").load(URL, function(){});私のdiv要素を使用して部分ビューのdivをロードするわけではないことは、動的

+1

「動的に生成する」とはどういう意味ですか? JSでdivを作成し、それをページの本文に追加しますか? –

+0

divを追加/挿入した後に実行したいコードを延期するだけです。それは、DOMに他のコードのために利用可能なdivを作る時間を与えるでしょう。これは、実行したいコードがdivに影響することを前提としています。 – Shilly

答えて

1

JavaScriptが同期的に実行されるいくつかの助けを提案してください生成されます。 jQueryを使用して「ビュー」を構築してDOMに挿入する場合は、マークアップがDOMに挿入された後に「ポストレンダー」コードを実行します。

$('#myContainer').append(someMarkup); 
execSomePostRenderFunction(); 

あなたは、あなたがload()機能を使用すると、あなたの投稿がコールバックでコードをレンダリング置くサーバーから部分ビュー/ HTMLコンテンツをロードするために、AJAXを使用している場合。

$('#myContainer').load('route/to/Partial', execSomePostRenderFunction); 

か、無名関数を使用することができます:あなたが質問タグ付けされたAJAXを持っていますが、部分的なビューをロードしていないと言うので、あなたの質問は少し混乱して

$('#myContainer').load('route/to/Partial', function(){ 
    //...do something here 
}); 

を。どのMVCフレームワークを使用しているかを指定して、誰かがより明確な指針を与えることもできます。

たとえば、MVCの部分ビューは完全にサーバー側の技術であり、ページがロードされた後(ボタンクリックイベントなど)に部分ビューをレンダリングする唯一の方法は、ajaxとload()関数です($.get()または$.ajax()を使用することもできますが、load()は簡単です;それが作成された理由です)。

関連する問題