2013-07-06 110 views
1

我有一个允许用户动态添加字段的表单。第一个字段后的每个字段都有一个“删除”按钮添加到它。
以下是在的document.readyJquery删除按钮停止工作后点击一下

var new_button =$('<div class="form-actions"><button type="button" class="btn btn-primary remove pull-right">Remove</button></div>').click(function(){ 
    $(this).parents('.field_group').remove(); 
    }); 

我那么按钮追加到字段的新群体,他们都是这样

$('#more_fields').click(function(){ 
    $('.field_group:first').clone(true).insertAfter('.field_group:last'); 
     var last = $('.field_group:last'); 
     last.append(new_button); 
); 

我的目标是删除整个”创建时。 field_group“每次点击时都会围绕该按钮。但是,这只能工作一次。奇怪的是,如果我有按钮做一些其他事情,比如改变字段组背景颜色,它一直工作。

回答

2

你必须附加一个按钮的副本。

last.append(new_button.clone(true));

+0

当我尝试这个,新按钮停止完全功能 – ed209

+0

你必须克隆dataAndEvents(我更新了代码)。既然你在其他地方使用.clone,我假设你知道该怎么做 –

+0

Derrrrr ......它完全放弃了我的想法。谢谢你,先生。 – ed209

2

对于更模块化的方法不涉及HTML的负荷,你可以改变new_button以下几点:

var new_button = $("<div/>", { 
    "class": "form-actions" 
}).append($("<button/>", { 
    "class": "btn btn-primary remove pull-right", 
    "text": "Remove" 
})).on("click", "button", function() { 
    $(this).parents('.field_group').remove(); 
}); 

和Darhazer提到的,你必须使用clone(true)

$('#more_fields').click(function(){ 
    $('.field_group:first').clone(true).insertAfter('.field_group:last'); 
     var last = $('.field_group:last'); 
     last.append(new_button.clone(true)); 

}); 
+0

经过测试...作品 – ed209