开发者

Attaching JQuery Events to "on the fly created" controls

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜