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, но в целом вы все равно хотите применить к ним поведение (когда событие происходит).