我会说的很对。我有一张这样的桌子:

<table>
    <tr id="template">
        <td>Some text</td>
        <td><a class="add">Add</a></td>
    </tr>
</table>


然后我有一些JavaScript,如下所示:

$(document).ready(function() {
    $('a.add').click(function(event) {
        var newRow = $('#template').clone();
        newRow.removeAttr('id');
        newRow.find('td.button a').removeClass('add').addClass('remove').text('Remove');
        newRow.unbind(event).click(function()) {
            alert('Put some remove row code here');
        });
        $('#template').before(newRow);
    });
});


这一切都是为了显示一个具有单行的表,其最后一列包含一个链接。如果单击该链接,则会创建该行的副本并插入到该行之前。在该过程中,链接元素的类别从“添加”切换为“删除”,链接的文本切换为“删除”。

现在,这一点是,您应该能够通过单击底部行的“添加”链接来添加新行,并通过单击它们的“删除”链接来删除新行。

不幸的是,“删除”链接仍然像“添加”链接一样,添加新行。解除绑定本来可以解决这个问题,但是由于某种原因,它没有这样做。但是,警报仍然显示。

最佳答案

unbind应该在标签上,而不是newRow上。

$(document).ready(function() {
    $('a.add').click(function(event) {
        var newRow = $('#template').clone();
        newRow.removeAttr('id');
        newRow.find('td a').removeClass('add').addClass('remove').text('Remove')
            .unbind(event).click(function() {
                alert('Put some remove row code here');
            })
        $('#template').before(newRow);
    });
});

10-08 16:47