livequery ведет себя странно для динамически добавляемых элементов

Когда я использую следующее, я вижу все div и статические и динамические один за другим, включая динамически добавленный div #xyz

jQuery('div').livequery(function() { alert($(this).attr("id") + " div added") })

но когда я использую

jQuery('#xyz').livequery(function() { alert($(this).attr("id") + " div added") })

Я ничего не получаю. Однако - если XYZ был в статическом HTML, выше работает.

В конце концов я хочу иметь возможность нажимать кнопку программно при динамическом добавлении.

Любая помощь приветствуется.

1 ответ

Решение

Просто используйте jQuery.live. Это прикрепит обработчик событий к элементам, которые соответствуют селектору сейчас и в будущем.

пример

$('a.foo').live('click', function() {
    alert('Clicked!');
});

Я не знаю, можете ли вы поймать событие, когда новые элементы добавляются в DOM, но в целом вы все равно хотите применить к ним поведение (когда событие происходит).

Другие вопросы по тегам