javascript - jQuery sortable ('disable' ) from start event 不完全像预期的那样工作

标签 javascript jquery jquery-ui jquery-ui-sortable sortables

下面的代码并没有完全禁用开始事件中的排序。它会将类 ui-sortable-disabledui-state-disabled 添加到可排序元素,但它不会禁用功能 - 换句话说,可排序元素看起来已禁用,但它们仍然接受拖动的项目并且表现得像已启用。

var assignedSortables;
var startDrag = function(event, ui) { 
    assignedSortables.each(function() {$(this).sortable('disable');});
};

var stopDrag = function(event, ui) { 
    assignedSortables.each(function() {$(this).sortable('enable');});
};

assignedSortables = $(".my-sortable-containers").sortable({
    connectWith: '.my-sortable-containers',
    start: startDrag,
    stop: stopDrag
});

我想在拖动开始时这样做的原因是因为我可能需要禁用其他已包含被拖动项目的已连接可排序项(为了简化,我删除了逻辑)。这是错误还是有解决办法?

最佳答案

我刚遇到同样的问题。通过调用启动排序的“刷新”方法,我能够获得我想要禁用的已连接排序以禁用(实际上)。

所以,在你的开始回调中会是这样的:

$connectedList.sortable('disable');
$(ui.sender).sortable('refresh');

我猜想在启动事件被触发之前,列表在内部获取了一组已连接和未禁用的列表,并且不会检查该列表是否在触发启动后发生变化。

关于javascript - jQuery sortable ('disable' ) from start event 不完全像预期的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1189945/

相关文章:

javascript - 元素输入上的 JQuery 自定义事件处理程序

jquery - jQuery UI Slider 的动态 Twitter Bootstrap 工具提示

jquery-ui - 动画 jQuery UI 可排序使用 CSS3 转换

c# - 图表不会得出我的观点

jquery - 文本的位置相对和绝对高度问题

javascript - 如何检查 Node js 中的数据类型——特别是整数

javascript - 根据各自的高度或内容显示更多和更少

jquery-ui和webpack,如何管理成模块?

javascript - 创建一个高度等于剩余可用空间的 div

javascript - 当变量初始化为 props 更改时,React props 意外更改