vue2 element ui 的表格使用 sortablejs 拖拽列遇到的问题和解决方案

项目使用 element ui 的表格实现拖动表头可改变列的宽度,又使用sortablejs实现表格的列可拖拽到其他列的位置,导致出现如下的一些问题:

1、某一列宽变大或变小后,只有当前列可拖拽,其他列无法拖拽。

解决方案:在列宽发生改变后,销毁当前拖拽实例,再重新创建拖拽实例。

javascript 复制代码
this.sortDemo.destroy()

此方法可查看sortablejs官网 Sortable.js中文网

2、当表格没有横向滚动条时,某一列宽变大或变小时,其他列宽也会变大或变小。

根因:表格的每一列设置了min-width,当表格没有横向滚动条时,某一列宽变大或变小时,min-width 会把剩余宽度按比例分配给设置了 min-width 的列,这样才可以撑开表格的整体宽度。

结论:当表格有横向滚动条时就不会出现这个问题。

3、当表格没有数据时,列不可以拖拽,改变列宽后可拖拽。

解决方案:表格数据更新后,不管表格数据接口有没有返回数据,都需重新挂载拖拽监听事件,才可以拖拽列。

javascript 复制代码
this.reDrawTable()
相关推荐
Charles_go8 分钟前
C#中级45、什么是组合优于继承
开发语言·c#
二川bro22 分钟前
数据可视化进阶:Python动态图表制作实战
开发语言·python·信息可视化
Z***u65925 分钟前
前端性能测试实践
前端
xhxxx29 分钟前
prototype 是遗产,proto 是族谱:一文吃透 JS 原型链
前端·javascript
倾墨30 分钟前
Bytebot源码学习
前端
用户938169125536033 分钟前
VUE3项目--集成Sass
前端
S***H28344 分钟前
Vue语音识别案例
前端·vue.js·语音识别
q***2511 小时前
java进阶1——JVM
java·开发语言·jvm
while(1){yan}1 小时前
线程的状态
java·开发语言·jvm
涔溪1 小时前
通过Nginx反向代理配置连接多个后端服务器
vue.js·nginx