ajax - jQuery, click event doesn't fire -
my problem (because solved it, don't know why worked): had 2 'span'
tags inside dom
same css
class. 1 span added via ajax request. trying fire click event on them using:
$('.css class').on('click', function ...
but 'span'
tag added second (ajax) didn't produce click event. when i've changed above line to:
jquery('body').on('click', '.css class', function(e){...
everything started work should. don't know why.
use event delegation:
$('body').on('click','.css-class',function(){ // code goes here. });
remember not have spaces in class. otherwise you'll targeting <class>
under .css
on()
event handlers bound selected elements; must exist on page @ time code makes call .on(). ensure elements present , can selected, perform event binding inside document ready handler elements in html markup on page. if new html being injected page, select elements , attach event handlers after new html placed page. or, use delegated events attach event handler, described next.
delegated events have advantage can process events descendant elements added document @ later time. picking element guaranteed present @ time delegated event handler attached, can use delegated events avoid need attach , remove event handlers....
Comments
Post a Comment