2012-03-09 2 views
1

Я создаю элемент с .append в jQuery. У меня есть функция, которую я хочу выполнить, когда элемент существует.Создание функции, которая срабатывает после возникновения элемента

Я обнаружил, что сразу же после запуска команды append элемент не существует. Итак, как я могу заставить его выполнить свое существование?

+2

Это не так, '.append()' происходит немедленно, и элементы доступны немедленно. –

+0

необходимо отправить код ... если вы добавите, а затем вызовите функцию, он найдет элемент, если он существует – charlietfl

+0

* «... после появления элемента» * - и элемент родился ;-) –

ответ

2

Вы можете привязать к DOMNodeInserted событию, но имейте в виду, что вы потеряете поддержку IE8 и старше, когда вы делаете это:

$(document).on('DOMNodeInserted', '.my-element-class', function() { 
    $(this).css({ backgroundColor : 'red' }); 
}); 

Вот документацию MDN для событий, смотрите в разделе «Мутация События»: https://developer.mozilla.org/en/DOM/DOM_event_reference

Хотя элемент делает существовать после того, как вы добавите его в DOM, так что вы, вероятно, пытается выбрать его неправильно:

$('body').append('<div>My New Div!</div>').children().last().css({ backgroundColor : 'red' }); 

Вот демо, показывая, что вы можете выбрать элемент непосредственно после добавления его в DOM: http://jsfiddle.net/AH6RG/

Обратите внимание, что этот код использует тот факт, что .append() добавляет новый элемент в качестве последнего ребенка контейнера он добавил к. Поэтому вы можете выбрать его, выбрав детей в контейнере, а затем выбрав последний ребенок.

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