Доступ к элементам после добавления - PullRequest
4 голосов
/ 09 мая 2011

Мне нужно получить доступ к элементам DOM после добавления JQuery.Допустим, у меня есть это:

<ul id="items">
    <li class="item">one</li>
    <li class="item">two</li>
</ul>

Тогда есть Javascript:

var addItems = function(html) {
    $('#items').append(html);
    //How do I access the new items here?
}

Допустим, html:две новинки.Это что-то включает в себя события привязки к ним.Поэтому я не могу просто использовать $ ('. Item'), потому что это добавит двойные события к существующим элементам.Как только новые элементы становятся частью DOM, в них нет ничего, что отличало бы их от существующих.

Какой лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

Создайте коллекцию jQuery для html перед добавлением:

var addItems = function(html) {
    var $items = $(html);
    $('#items').append($items);
    $items.foo();
}
1 голос
/ 09 мая 2011

Вот рабочий пример: http://jsfiddle.net/hunter/7UTA2/

var addItems = function(html) {
    var $html = $(html);
    $('#items').append($html);
    $html.text("test");
}

Это показывает, что вы все еще можете манипулировать текстом (или любым другим атрибутом) элементов, поскольку у вас все еще есть ссылка на коллекцию.

...