将JQuery事件附加到“动态创建”控件

时间:2011-09-23 23:44:02

标签: jquery attachevent

我在页面中附加了现有的div。附加文本包含字符串中的html代码。问题是,当我在追加到页面后添加点击它们时,事件不起作用。我猜Jquery在页面加载时加载控件,我必须做一些事情来再次攻击事件。

2 个答案:

答案 0 :(得分:5)

尝试使用.live()或.delegate来实现此目的。

答案 1 :(得分:2)

您遗失delegate()

所以,如果你运行

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

或等效的

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

运行后加载的任何a都没有得到该事件。

如果你做了

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

然后,只要a.doAction在运行时存在#workingArea,就会为所有添加的{{1}}元素捕获这些事件。