.parent()。remove()问题

我有一个基于jQuery的表单,您可以在其中添加额外的人员到应用程序。 我正在克隆第一个字段集并将其添加到最多3个额外的人。 当您添加1个额外的人时,您可以选择删除该人。

但是,我的删除按钮不起作用。 早些时候,直到我将额外的函数添加到克隆中才能更改字段集中其他元素的ID。

我正在使用:

$(".remove").click(function() { $(this).parent().remove(); 

这是最初的工作,但现在它不是,我无法弄清楚为什么。

我已经删除了第一个“删除此人”的行,只是为了表明第一个仍然有效,但其余的则没有。 (当它被修复时,我将最终将第一个定位在舞台上)

可能更容易看到它所以我把它放在这里http://bit.ly/kHcAbe

基本上,除了第一部分之外,为什么我的“删除这个人”的任何想法都不起作用?

尝试:

 $(document).on('click', '.remove', function() { $(this).parent().remove(); }); 

事件绑定在页面加载上,因此新添加的元素不是。

‘live’函数调用已被弃用,不再有效。 您可以在此处找到有关如何使用替换’on()’方法重写函数的说明以及有关弃用的更多信息:

http://api.jquery.com/live/

要处理所有当前和新创建的元素,您现在必须使用:

 $(document).on("click", ".remove", function() { $(this).parent().remove(); }); 

jQuery在文档对象上运行,而不是在元素上运行,并且还有一个附加参数来指定要监视的元素并添加事件侦听器。

确保关闭你的表达:

 $(".remove").click(function() { $(this).parent().remove(); }); 

您可以执行此操作以删除父级:

  $(document).on("click", ".remove", function() { $(this).parent().remove(); }); 

或者你可以这样做删除所有父母:

  $(document).on("click", ".remove", function() { $(this).parents().remove(); }); 

元素最初不存在,这意味着您需要使用.live().delegate()

例如,更改:

使用$(".remove").click(...)而不是$(".remove").live("click", ...) this