2017-01-04 3 views
0

Каким образом можно использовать инструкции jquery для элементов HTML, добавленных во время вызова функции?Как выполнить jQuery для элементов .html()?

Reset: function() { 
$("#viewarea").empty(); 

Loader: function() { 
Reset(); 

$("#viewarea").html(//HTML CODE); 
$(function() { 
    $("#viewarea").each(function(index){ 
     console.log(this); 
    }); 
}); 

В моем коде есть функция Loader, которая очистит элемент div и добавит содержимое на страницу. Когда я хочу перейти на новую страницу, я очищаю весь viewarea и пишу новый контент, поэтому мне не нужно перезагружать страницу. Моя проблема в том, что у меня есть элементы, которые нарисованы на странице, и селектор jQuery не найдет эти элементы. Прямо сейчас заявления jquery выполняются на готовом документе, но даже без этого элементы не будут найдены.

Я думаю, что решение должно быть каким-то типом метода, который заставит jquery-оператор ждать выполнения $(). Html(), прежде чем пытаться найти элементы на странице.

+0

В каких заявлениях jquery он не находит элементы в недавно добавленном содержимом DOM? Просто любопытно. Вырезать образец для контекста? –

+0

кажется '$ (" # viewarea "). У каждого' нет смысла. – Banzay

+0

не лучше использовать 'append()' вместо 'html()', поэтому DOM будет построен в зависимости от добавленных объектов. – Banzay

ответ

0

Вышеупомянутое действительно правильно, но я забыл, что это было внутри вызова AJAX, который является асинхронным. Итак, мои элементы рисовались, но они пропускали прямо к моему jquery и начали их исполнять, но иногда AJAX заканчивался раньше, а иногда и нет. Извлеченный урок, вы можете использовать html и добавлять и использовать инструкции jquery, но убедитесь, что они не находятся в асинхронном заявлении.

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