I’ve been working with jQuery for a pair of weeks and I’ve noticed it works fine with objects that are in the original HTML document, but when I generate a new element using jQuery the library doesn’t get any of its events.
Let’s say I try to run something like this:
$('.whatever').click(function() { alert('ALERT!'); });
If the HTML does have something like this:
<span class='whatever'>Whatever</span>
Then clicking on the word Whatever gets me a nice alert.
But if the span element is added dynamically using jQuery, nothing happens when clicking on it.
Is there a way to make jQuery work with those elements, somehow?
Thats because the : (corrected)
Means, in literal terms:
so naturally, adding a new DOM element wont automagically apply the click.
the best way to solve this is create bindings during your insert phase, ie:
Warning on simply rebinding everything
If done wrong, it can lead to undesired effects, ie, making the number of times the event triggers something increase. To stop this, you may need to first unbind them to delete the previous passes binds.
ie,
so to stop this, you need
in the rebind.