1

谁能告诉我我的代码做错了什么?

请理解我只是一个学习jquery的初学者。我正在尝试使用<table>可以添加和删除项目的检查列表,当您单击复选框时,会出现一个复选标记,然后是“完成!” 载于另一个<td>。再次单击复选框后,复选标记就会消失。你可以在这里看到我的小提琴:http: //jsfiddle.net/linyingsinc/w6XxP/1/

我最初设置.checked为隐藏,以便.toggleClass在单击时可以删除该类,从而显示复选标记。它最初工作得很好,但是当我添加这个 jquery 时:

$(this).toggle(function() {  
var itemDone = '<td class="complete">done!</td>';  
$(this).parent('tr').append(itemDone);  
});

...整个<tr>容器<td class="checkbox">在一秒钟后完全消失。我只想能够切换复选标记和“完成!” 点开和关。

4

1 回答 1

1

该版本的toggle()函数在最新版本的 jQuery 中被删除,因此toggle()您现在使用的函数会切换可见性,只是隐藏或显示所有内容。

您必须创建自己的切换功能:

$(document).on('click','.checkbox',function() {
    $(this).find('span').toggleClass('checked');
    if ($(this).parent('tr').find('.complete').length) {
        $(this).parent('tr').find('.complete').remove();
    }else{
        var itemDone = '<td class="complete">done!</td>';
        $(this).parent('tr').append(itemDone);
    }
});

小提琴

于 2013-04-01T14:56:30.543 回答