我正在尝试使用jQuery UI创建一个带有可排序行的表。我已经有了这个工作,但我打算只根据一个复选框排序一些行(不是所有行)。
我将代码上传到http://jsfiddle.net/detesto/7Tcgc/3/
当复选框更改时,我添加或删除应触发可排序行的类。问题是当它被删除时,它不能按预期工作。
我也尝试对sortble $("#selector").sortable("refresh");
进行刷新,但这对我也不起作用。
如果用户拖动一个无效的行,我可以通过取消该事件来工作,但我想完全阻止它。
这可以预防吗?
提前致谢。
答案 0 :(得分:1)
更改为此代码
$(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
}
});