我有以下问题。
我有一张桌子,如下例所示。计划是复制一行但不是新的类。该类应该在删除类中更改。 jsfiddle中的示例:http://jsfiddle.net/klaas3/wgRYR/目标是使最后一行始终为绿色,其他行保持红色。
<table class="test">
<thead>
<tr>
<td>header 1</td>
<td>header 2</td>
<td>header 3</td>
<td>header 4</td>
</tr>
</thead>
<tbody>
<tr class="1">
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td class="remove"></td>
</tr>
<tr class="2">
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td class="remove"></td>
</tr>
<tr class="new">
<td>data 1</td>
<td>data 2</td>
<td>data 3</td>
<td class="new"></td>
</tr>
</tbody>
我使用最后一列(使用new和remove类或红色和绿色)作为按钮。
我已经有了以下内容,但似乎出现了问题:
$("table.test tr.new:last td.new").click(function(){
$('table.test tr.new:last td.new').removeClass('new').addClass('remove').fadeIn("fast");
$('table.test tr.new:last').clone(true).insertAfter('table.test tr.new:last');
});
请注意,我不是一个非常有经验的jquery用户。此外,当更改单元类时,我将使用db id更改表行类。 (但我会尝试使用工作样本)。
答案 0 :(得分:1)
修改
您需要在更改类
之前克隆元素另外,要关闭/删除点击事件处理程序,请使用.off()
$("table.test tr.new:last td.new").click(function(){
var x = $('table.test tr.new:last').clone(true);
// you can use "this" instead of $('table.test tr.new:last td.new') since you are inside it's event handler
$(this).removeClass('new').addClass('remove').off('click');// <-- removes handler from current td
x.insertAfter('table.test tr.new:last');
});