2013-07-06 114 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