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()
проще, вот почему он был создан).
Что вы подразумеваете под "сгенерированным динамически"? Вы создаете div в JS, а затем добавляете его в тело страницы? –
Просто отложите код, который вы хотите запустить после добавления/вставки div. Это даст DOM время, чтобы сделать div доступным для другого кода. Это предполагает, что код, который вы хотите запустить, влияет на div. – Shilly