2016-07-11 3 views
1

Я получаю частичный вид CREATE как всплывающее окно при нажатии кнопки создания.Вызов функций javascript при визуализации частичного представления

Это означает, что при нажатии кнопки динамически добавляется div.

После этого div генерируется и все элементы внутри него загружаются, после чего я хочу вызвать функции javascript.

Все ответы, которые я могу найти, используют событие .load(), но мой сценарий отличается. Я не загружая частичный вид DIV с помощью ("#div").load(URL, function(){}); моего DIV генерируется динамически

Пожалуйста, предложите помощь

+1

Что вы подразумеваете под "сгенерированным динамически"? Вы создаете div в JS, а затем добавляете его в тело страницы? –

+0

Просто отложите код, который вы хотите запустить после добавления/вставки div. Это даст DOM время, чтобы сделать div доступным для другого кода. Это предполагает, что код, который вы хотите запустить, влияет на div. – Shilly

ответ

1

JavaScript выполняется синхронно. Если вы создаете «представление» с помощью jQuery, а затем вставляете его в DOM, просто выполните код «post render» после того, как разметка будет вставлена ​​в DOM.

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

Если вы используете Ajax, чтобы загрузить частичное содержание просмотр/HTML с сервера, то вы должны использовать функцию load() и поставить ваш пост вынести код в функции обратного вызова.

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

или вы можете использовать анонимную функцию:

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

Вашего вопрос немного запутанный, потому что у вас есть вопрос помечен Аякс, но говорят, что вы не загружаете частичный вид. Вы также можете указать, какую структуру MVC используете, чтобы кто-то мог дать вам более целенаправленное руководство.

Частичные представления в ASP.NET MVC, например, являются полностью серверной технологией, и единственный способ визуализации частичного представления после загрузки страницы (например, при нажатии кнопки) - через ajax и функцию load() (вы также можете использовать $.get() или $.ajax(), но load() проще, вот почему он был создан).

Смежные вопросы