我有一个editable table with rows cloned,克隆的行可以在两列中编辑,并带有文本区域和输入编号。如果单击以编辑输入数字,则会有一个函数可以生成总和并自动给出总金额。
我现在的问题是我无法正确配置克隆行的删除按钮。如果你试一试,你会注意到它不再删除一行,而是添加一行。我需要帮助来解决这个问题。
这是克隆行的脚本,我认为需要减少和改进
$('input:button').live('click',function(){
var temprow = $('#temprow tbody').html();
var tr = $(this).closest('tr');
tr.after(temprow);
});
$("input.tr_clone_add").live('click', function() {
var lastid = $('[id^="sum"]').length + 1;
var $tr = $(this).closest('.tr_clone');
var $clone = $tr.clone();
$clone.find(':text').val('');
$clone.attr('id', 'sum' + lastid)
$tr.after($clone);
initEditables();
tally('p#subtotal');
tally('p#total');
});
$(".tr_clone_remove").live("click", function() {
$(".tr_clone").last().remove();
initEditables();
tally('p#subtotal');
tally('p#total');
});
initEditables();
tally('p#subtotal');
tally('p#total');
答案 0 :(得分:1)
将tr.after
功能更改为:
if ($(this).val() == '+') {
tr.after(temprow);
}
将remove()
电话转为:
$(this).parent().parent().remove();
这是fiddle。
答案 1 :(得分:0)
使用正确的解决方案编辑您的小提琴:http://jsfiddle.net/Manna/S3kZw/5/
由于tr_clone_remove
类也是按钮类型输入,因此每次单击“删除”按钮时都会调用第一个处理程序。
$('input:button').live('click',function(){
var temprow = $('#temprow tbody').html();
var tr = $(this).closest('tr');
tr.after(temprow);
});
这就是为什么要插入行而不是删除行的原因。