jQuery单击附加元素

时间:2010-12-14 18:21:56

标签: jquery click append

我已经使用jQuery生成了一些html链接并将其附加到某个div 但是当我们附加了这些元素时,我现在无法调用click方法(当它们被硬编码到html时它工作正常) $('#something a').click(function() ...

有没有人知道这方面的解决方案?

3 个答案:

答案 0 :(得分:21)

对这些情况使用.delegate()

$('#something').delegate('a', 'click', function() {

这会在click上附加#something处理程序,而不是指向...内的<a>元素,因此它适用于稍后附加的锚点。替代方案(更糟糕的是有几个原因)版本是.live(),如下所示:

$('#something a').live('click', function() {

答案 1 :(得分:4)

还可以在附加元素时添加[click]事件,如下所示:

$('<someElement>').click(function(){ 
    $('<someElement>').append('<htmlCodeToAppend>');
    $('<appendedElement>').click(function() { /* do something */ });
});

这种方法可以完成这项工作,但我不确定是否有任何警告 - 也许其中一位专业人士可以介入这里。

干杯, 埃里克

答案 2 :(得分:0)

您需要使用live函数来确保click事件绑定到已加载页面后已添加到DOM的元素:

$('#something a').live('click',function() .....