0

我有以下问题。

我有一张桌子,如下例所示。计划是复制一行,但不复制一个新类。该类应在删除类中更改。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>

我使用最后一列(带有新的和删除的类或红色和绿色)作为按钮。

我已经准备好了以下内容,但似乎出了点问题:

$("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 更改表行类。(但我会尝试自己用一个工作样本)。

4

1 回答 1

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');
});​

http://jsfiddle.net/XvDBC/

于 2012-11-29T22:23:08.580 回答