位置: 编程技术 - 正文

JS组件Bootstrap Table表格多行拖拽效果实现代码(bootstrap js插件)

发布时间:2024-02-27

推荐整理分享JS组件Bootstrap Table表格多行拖拽效果实现代码(bootstrap js插件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Js组件开发方式,Js组件的滚动条怎么操作,bootstrap js插件,js组件开发教程,Js组件开发方式,Js组件开发方式,bootstrap js插件,Js组件的滚动条怎么操作,内容如对您有帮助,希望把文章链接给更多的朋友!

前言:前天刚写了篇JS组件Bootstrap Table表格行拖拽效果,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行。用了半天时间研究了下,效果是出来了,但是感觉不尽如人意。先把它分享出来,以后想到更好的办法再优化吧。

一、效果展示

1、拖动前

2、拖动中

3、拖动后

4、撤销回到拖动前状态

二、需求分析通过上篇我们知道,如果要实现拖拽,必须要有一个可以拖拽的标签,或者叫容器,比如上篇里面的tr就是一个拖拽的容器,那么如果要实现选择行的拖拽,那么博主的第一反应是将选中的行放到一个容器里面,比如放到一个div中,然后注册这个div的可拖拽,可是实际情况是,tr是在table里面的标签,如果将tr用div包起来,势必将table里面的样式打乱,这个界面就真的是乱掉了。很显然,这条路走不通。然后通过谷歌浏览器审核元素知道,用Bootstrap table生成的表格tr的父级元素实际上是tbody,于是在想是否可以注册tbody的拖拽,实践证明,此法可行。于是就此开干。

三、代码示例cshtm的代码就不再重复,和上篇相同。我们重点来看看js代码。

还是重点看看部分代码

1、注册左边可拖拽

JS组件Bootstrap Table表格多行拖拽效果实现代码(bootstrap js插件)

这里代码很简单,主要做了两件事:

(1)注册tbody的可拖拽,同样适用的JQuery UI的draggable事件。

(2)在开始拖拽前,保存两边表格的数据,用于还原的操作。

2、注册右边drop

这里代码和之前有点变化

(1)注册#div_tableright div[class=fixed-table-container]标签的droppable,这个标签是Bootstrap Table表格初始化后自动生成的,为什么不直接注册表格#tb_order_right的droppable,是因为这个标签作用域太小,会导致拖过来的tbody捕捉不到drop事件。而注册表格外部的#div_tableright div[class=fixed-table-container]这个div标签可以解决问题。

(2)通过var arrtr = $(ui.helper[0]).find("tr[class=selected]");找到拖过来tbody里面选中的行,然后将数据取出依次插入右边表格,左边表格则依次删除行数据。

(3)这里有点麻烦的是找drop的位置,我们知道,要想将左边选中的行放到右边指定的位置,那么就得得到当前鼠标drop的位置,这里通过ui.helper[0].offsetTop属性来获得鼠标的Y轴位置,通过计算得到要插入的位置。

3、撤销操作  

撤销操作和之前也基本相同。

四、总结效果是完成了,美中不足的是每次拖过去的都是整个tbody,而不是选中的行,奈何多个选中的行无法用某一个容器包起来。暂时没找到合适的解决方案。先这样吧,等以后想到好的方案了再优化吧。

五、优化方案

1、注册drap的方法

增加了这一句$(ui.helper[0]).find("tr[class!=selected]").remove();这样在拖动的时候就看不到未选中的行了。2、精准定位到右边表格指定位置:

因为每一行的行高不确定,是由行里面的数据动态撑出来的,所以这里也动态计算drop的位置。

至此,这个小的功能基本告一段落,基本的效果和待优化点也完成了。

源码下载:Bootstrap Table表格多行拖拽效果

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

标签: bootstrap js插件

本文链接地址:https://www.jiuchutong.com/biancheng/387119.html 转载请保留说明!

上一篇:JS操作XML实例总结(加载与解析XML文件、字符串)(js 操作xml)

下一篇:详解js中构造流程图的核心技术JsPlumb(js构造器constructor)

  • 设计印刷合同
  • 按适用税率征税销售额等于销售收入吗
  • 车船税税金及附加计入管理费用嘛
  • 出口销售收入要交增值税吗
  • 外销客户付的模具费如何入账
  • 需要安装的固定资产入账价值包括增值税吗
  • 自然人税收管理系统换了电脑怎么恢复数据
  • 融单是什么意思
  • 社保代理公司的合作协议
  • 固定资产拆除后账务处理
  • 报销凭证找不到了怎么办
  • 计提附加税的会计处理
  • 无形资产摊销表模板
  • 跨年度主营业务收入错账调整
  • 工程会计的主要工作
  • mac怎么设置屏幕保护壁纸
  • 盘活存量国有资产与轻资产运营
  • 暂估成本的会计处理
  • 残保金零申报但是逾期未报
  • 赠送产品如何计入成本
  • 以合同条款无法达成一致要求返还定金
  • 非货币性资产交换的记忆口诀
  • linux双ip路由设置方法
  • 往来款怎么查
  • 公司股权分红会交税吗
  • 不开票收入如何纳税申报
  • 支付报刊杂志费
  • h5响应式布局是什么
  • nginx加php
  • 工业企业采购部工作职责
  • 马拉喀什的历史背景
  • HTML怎么设置文本框
  • 九斑蛾,瑞士 (© Thomas Marent/Minden Pictures)
  • yii2.0框架
  • 现金流量表期初现金余额本年累计
  • 月末结转本年利润吗
  • web网页设计期末作业猫眼电影首页
  • content security policy blob
  • vue动态绑定背景图
  • 间接费用计算
  • vue实现回车登录
  • java基础变量字节
  • 退还多缴纳税款
  • 所得税申报怎么弥补以前年度亏损
  • 装修费摊销费计算公式
  • 物权转移的几种情形
  • mongodb win7
  • sqlloader-350错误
  • 物业用房需要交维修基金吗
  • 残保金滞纳金免征吗
  • 企业工会经费计提标准
  • 营业执照是如何年审的
  • 企业补缴税款如何申报
  • 付出对价的公允
  • 如何区分生产类型
  • 购进国内交通运输产品
  • 管理费用应该如何分摊 dcf
  • 跨月发票税率开错了如何处理合适?
  • 停产期间机器设备没提折旧,如何补提折旧
  • 企业最应避免的外部环境和内部条件组合是
  • etc发票申请流程
  • 小规模纳税人发票可以抵扣吗
  • 三证合一后还有纳税人资格证吗
  • 通过SQL绘制杨辉三角的实现方法介绍
  • window10桌面有白色框
  • Windows Server 2008下利用Diskpart管理磁盘
  • win7系统桌面设置
  • xp的命令提示符在哪
  • centos怎么安装
  • xp系统如何设置
  • centos elk
  • win7笔记本电池电量显示怎么设置
  • win10系统onenote不能用
  • selenium 与 chrome 进行qq登录并发邮件操作实例详解
  • javascript的sort
  • jquery .find()
  • shell读取文本内容到变量
  • python常用的内置逻辑判断函数
  • 消费税申报详细流程图
  • 西安车辆购置税在线交费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号