13

我将可排序绑定到这样的元素:

$('#elem').sortable({
   items: 'li',
   placeholder: 'drop-highlight',
   forcePlaceholderSize: true,
   revert: true
});

在某个事件上,我不想再允许这个元素是可排序的。如何解绑?

所有这些都是单独尝试的,但都失败了(即 #elem 之后仍然可以排序):

$('#elem').unbind('sort');
$('#elem').sortable('destroy');
$('#elem').sortable('option', 'sort', null);
4

2 回答 2

10

是的,它 su**s :-( 这会在 1 秒后删除功能css 类/注入跨度(破坏似乎只是杀死小部件,而不是添加的类或标签)

$('#elem').sortable({
   items: 'li',
   placeholder: 'drop-highlight',
   forcePlaceholderSize: true,
   revert: true
});

当您需要“无法排序”列表时,将此代码放在处理程序中

function() {
    $("#elem").sortable("destroy"); //call widget-function destroy
    $("#elem li").removeClass('ui-state-default');
    $("#elem li span").remove();
}

$("#elem").sortable("destroy"); 实际上确实破坏了可排序功能,它只是忘记清理。

于 2012-10-15T00:14:03.203 回答
5

如果要禁用可排序,请尝试以下操作:

$("#elem").sortable("disable");

并启用回来

$("#elem").sortable("enable" );
于 2016-12-31T20:32:47.310 回答