1

我正在尝试使用 jQuery UI 创建一个带有可排序行的表。我已经有了这个工作,但我打算只根据一个复选框对一些行(不是全部)进行排序。

我将代码上传到http://jsfiddle.net/detesto/7Tcgc/3/

当复选框更改时,我添加或删除应该触发可排序行的类。问题是,当它被删除时,它不能按预期工作。

我也尝试对 sortble 进行刷新,$("#selector").sortable("refresh");但这对我也不起作用。

如果用户拖动无效行,我可以通过取消事件来使其工作,但我想完全阻止这种情况。

这可以防止吗?

提前致谢。

4

1 回答 1

2

更改此代码

$(document).ready(function () {
    clearTimeout(timeoutOnce);
    timeoutOnce = setTimeout(reorderRows, 300);
    $("#fileTable tbody").sortable({
        helper: fixHelper,
        items: "> tr.doSort",
        cancel: ".noSort"   //---- add
    }).disableSelection();
}).on("click", ".enableDisable", function () {
    if ($(this).is(":checked")) {
        $(this).closest("tr").removeClass("noSort").addClass("doSort");
        //$("#fileTable tbody").sortable("refresh"); // --- remove
    } else {
        $(this).closest("tr").addClass("noSort").removeClass("doSort");
        //$("#fileTable tbody").sortable("refresh"); // --- remove
    }
});
于 2013-11-01T01:14:25.403 回答