You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery Sortable时onDrop事件致页面冻结问题求助

解决jQuery Sortable嵌套
    拖动后页面冻结、元素悬浮的问题

我之前也踩过这个坑!你碰到的问题根源在于自定义onDrop事件时没有让库完成默认的收尾流程,导致拖动元素一直卡在拖动状态(透明悬浮、页面无响应)。

问题原因

jQuery Sortable(非jQuery UI那个)的onDrop事件设计比较特殊:如果你自己写了这个回调函数,就必须手动触发库的默认drop处理逻辑。如果不做这件事,库就不会重置拖动元素的样式和状态,元素会一直保持拖动时的position: absolute和半透明效果,页面也会因为拖动状态没结束而出现冻结感。

解决方案

在你的onDrop函数里,要么调用传入的_super参数(这是库内置的默认drop处理函数),要么返回true,让库继续完成后续操作。

举个修改后的代码例子:

$('ol').sortable({
  group: 'nested',
  // 正确的onDrop写法
  onDrop: function(item, container, _super) {
    // 这里放你的自定义逻辑,比如打印日志
    console.log('元素已放置:', item.text().trim());
    
    // 关键:调用_super执行库的默认drop处理
    _super(item, container);
    
    // 或者也可以返回true来允许默认流程执行
    // return true;
  }
});

额外注意事项

  • 别把这个库和jQuery UI Sortable搞混,两者的API完全不一样,这个库的事件回调需要遵循它自己的规则
  • 尽量使用最新版本的jQuery Sortable,旧版本可能存在类似的兼容性问题
  • 如果还是有问题,检查一下页面里有没有其他JS代码阻止了drop事件的冒泡,比如其他事件监听器调用了event.preventDefault()或者event.stopPropagation()

内容的提问来源于stack exchange,提问作者henriquehbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:45:14