2012-07-28 84 views
0

没关系....我用活的,它似乎工作...jQuery的 - 克隆行失去功能

我有一个包含表单元素表。当用户输入一个新值并点击添加按钮时,表格的最后一行被克隆,输入字段被更新为新信息。另外,每一行都包含一个删除图标。当用户单击删除图标时,它所属的行被删除。

我所有的工作......

除了,克隆行的删除图标无法正常工作。当你点击它并且我尝试了各种各样的东西时,没有任何反应,但是似乎无法弄清楚那一部分......我刚开始像一个月前一样使用jquery,并且认为我错过了某些明显的东西,但不知道是什么。 ..

我穿上的jsfiddle的代码,我希望有人可以帮帮忙:

http://jsfiddle.net/sMqcB/

+0

不要使用'.live',使用'.delegate'。 – 2012-07-28 17:38:25

+0

大家知道,'.live'已被弃用 - 您应该使用'.delegate'方法,而不是像上面的@ExplosionPills注释那样。如果你能保证你总是使用支持它的jQuery版本,那么可以使用'.live',但我怀疑在某些时候你会想要升级。 – ClarkeyBoy 2012-07-28 17:40:45

回答

0

,因为这些都是新的元素注入到DOM。它不知道你已经定义的现有点击事件。

解决方案:使用jQuery的on方法。

变化

$('img.seminars-faux-remove').click(function() { 
    $(this).closest('tr').remove(); 
}); 

$(document).on("click",'img.seminars-faux-remove',function() { 
    $(this).closest('tr').remove(); 
}); 

jQuery的on将为当前和未来元素的工作。这个方法可以从jQuery 1.7+开始使用。如果您使用的是旧版本的jQuery,则可以考虑使用live。但是如果你使用1.7+,你应该使用jQuery on 应该

0

您可以使用.clone(true)而不是.clone()来保持功能。请参阅.clone()文档,特别是[withDataAndEvents]参数的含义。

DEMO