livequery behaving strangely for dynamically added elements

167 Views Asked by At

When I use the following, I see all divs static and dynamic one by one including the dynamically added div #xyz

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

but when I use

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

I get nothing. However - if xyz was in static html, the above works.

Eventually I want to be able to click a button programmatically when added dynamically.

Any help is appreciated.

1

There are 1 best solutions below

1
On BEST ANSWER

Just use jQuery.live. This will attach event handler to the elements that match the selector now and in future.

Example

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

I don't know if you can catch the event, when new elements are added to the DOM, but in general you want to apply behaviour (when an event occurs) to them anyway.