我有一个基于jQuery的表单,您可以在其中添加额外的人员信息。 我正在克隆第一个字段集并将其添加到最后,最多可以添加3个附加人员。当您添加了1个额外的人员后,您可以选择删除该人员。
但是,我的删除按钮不起作用。之前它是可以工作的,直到我添加了其他函数来更改字段集中其他元素的ID。
我正在使用:
$(".remove").click(function() {
$(this).parent().remove();
这段代码原本是可行的,但现在已经无法正常工作,我无法弄清楚原因。
我已经删除了停止第一个“删除此人”操作的代码行,只是为了展示第一个操作仍然有效,但其余操作则无法正常工作。(一旦修复后,我将把第一个操作定位到舞台外面)
如果需要更直观地查看问题,可以通过该链接进行查看。
所以,基本上,有什么想法,为什么我的“删除此人”操作在除第一个部分以外的所有部分都无法正常工作?
$.click()
时,它会将事件处理程序连接到所有当前存在与选择器匹配的元素,而$.live()
则将其连接到所有当前或未来匹配的元素。如果新人的区块在运行连接事件处理程序的代码之后添加,那么当处理程序被连接时,它们不存在,因此没有包括在选择器中当事情发生时。 - Tomas Aschan.live()
不会钩住与选择器匹配的任何元素。它会为window
或document
(我不记得哪一个)提供处理程序,并使用整个文档的事件代理。出于这个原因,我更喜欢使用.delegate()
,它也使用委派,但仅在您定义的容器内部使用。 - user113716