1

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

4

2 回答 2

5

尝试.live()为此目的使用或 .delegate。

于 2011-09-23T23:45:16.367 回答
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在运行时存在,就会为任何和所有将来添加的元素捕获这些事件。

于 2011-09-23T23:48:53.417 回答