Вы можете инициировать пользовательское событие во вновь добавленном элементе DOM, которое может быть обработано обработчиком события jQuery:
//bind to our custom event for the `.sub-element` elements
$('#container').on('custom-update', '.sub-element', function(){
$(this).html('<b>yaay!</b>');
});
//append a new element to the container,
//then select it, based on the knowledge that it is the last child of the container element,
//and then trigger our custom event on the element
$('#container').append('<div class="sub-element">No worky!</div>').children().last().trigger('custom-update');
Вот демонстрационная версия: http://jsfiddle.net/ggHh7/4/
Этот метод позволяет вам делать что-то глобально, даже если вы загружаете динамический контент разными способами.
Обновление
Я не уверен в поддержке браузера (я полагаю, IE8 и старшене поддерживает), но вы можете использовать событие мутации DOMNodeInserted
, чтобы определить, когда добавлен элемент DOM:
$('#container').on('DOMNodeInserted', '.sub-element', function(){
$(this).html('<b>yaay!</b>');
})
$('#container').append('<div class="sub-element">No worky!</div>');
Вот демонстрационная версия: http://jsfiddle.net/ggHh7/7/
ОБНОВЛЕНИЕ
Для этого существует новый API, поскольку в настоящее время DOMNodeInserted
устарела.Я не смотрел на это, но это называется MutationOvserver
: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver