开发者

Attaching JQuery Events to "on the fly created" controls

开发者 https://www.devze.com 2023-04-08 14:53 出处:网络
I\'m appending to an existing div in my page. The appended text contains html code in string. The problem is, events aren\'t working when I add click on them after appending to page. I guess Jquery lo

I'm appending to an existing div in my page. The appended text contains html code in string. The problem is, events aren't working when I add click on them after appending to page. I guess Jquery loads control on page load and I have to do something to attack the events a开发者_运维百科gain.


Try to use .live() or .delegate for this purpose.


You are missing delegate().

So if you run

$('#workingArea a.doAction').bind('click', function(){
    // do stuff
});

or the equivalent

$('#workingArea a.doAction').click(function(){
    // do stuff
});

Any a's loaded after that runs don't get the event.

If instead you do

$('#workingArea').delegate('a.doAction', 'click', function(){
    // do stuff
});

then those events will be captured for any and all future a.doAction elements that get added, as long as #workingArea exists when it is run.

0

精彩评论

暂无评论...
验证码 换一张
取 消