Создание функции, которая срабатывает после появления элемента - PullRequest
1 голос
/ 09 марта 2012

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

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

1 Ответ

2 голосов
/ 10 марта 2012

Вы можете привязаться к событию 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() добавляет новый элемент в качестве последнего дочернего элементаконтейнер, к которому он добавлен.Таким образом, вы можете выбрать его, выбрав дочерние элементы контейнера, а затем выбрав последнего дочернего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...