使用复选框对列进行排序。不行。我被卡住了

时间:2011-06-15 11:32:47

标签: javascript jquery

我希望这个JSfiddle中的Signed按钮用复选框对列进行排序,就像它实际上完美无缺。

http://jsfiddle.net/littlesandra88/DSRmg/

我注意到tinySort,用于对表进行排序的库,不能仅使用复选框对列进行排序,因此我在JSfiddle中添加了&nbsp;(或X中的可见性)对于那些选中了复选框的<td>,它可以对列进行排序。

问题

问题是,当单击“保存”时,应添加&nbsp;或X(在这种情况下为X),因此单击“签名”时,列将正确排序。

this帖子中了解了我如何添加和删除&nbsp或X。

我觉得JQuery无法找到<label>,因为它位于<td>内。

如何重现问题

尝试取消选中其中一个复选框,然后点击“已签名”。现在,复选框列不再正确排序。

问题

如何让“保存”按钮添加&nbsp;,以便对列进行排序?

更新

this我实施了Rakesh对tablesort的回答。但我仍然无法让它发挥作用。

2 个答案:

答案 0 :(得分:2)

我建议您使用tablesorter插件,它可以让您选择使用自己的解析器逻辑进行排序。

查看代码 - http://jsfiddle.net/srakesh/DSRmg/8/

HTML:

<td class="checkbox"> <input name="signed" type="checkbox" checked ><span class="hidden">1</span> </td>

使用Javascript:

$(document).ready(function() { 
    $("#myTable").tablesorter();              
    $('#myTable input:checkbox').click(function() {
        var order = this.checked ? '1' : '0';
        $(this).next().html(order);
        $(this).parents("table").trigger("update");
    })
});

答案 1 :(得分:0)

错过了分号:

$('#myTable input:checkbox').click(function() {
    var order = this.checked ? '1' : '0';
    $(this).next().html(order);
    $(this).parents("table").trigger("update");
}); //try putting a semicolon here