位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享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)

  • 偶然所得纳税计算
  • 税收的作用是什么
  • 租赁类发票可以不写单价数量
  • 美团收取的佣金怎么开票
  • 车辆商业险和强制险交完给退么
  • 2019年一季度季报怎样填写
  • 个体生产经营所得税税率表
  • 工伤医疗费用个人社保卡支付找谁报销
  • 录入凭证需要做哪些工作
  • 所得税滞纳金怎么做账
  • 车量购置税申报流程是什么样的?
  • 废物处置费如何做分录?
  • 企业注销合适还是转让出去合适
  • 自来水差额征税政策
  • 股东转账实收资本怎么填
  • 劳务公司民工工资可以抵进项吗
  • 基本医疗保险是什么?
  • 企业进口应税物资在进口环节应交的消费税,应计入
  • 所得税弥补以前年度
  • 学校应该缴纳的税
  • 关于保险机构代收车船税开具增值税发票问题的公告
  • 银行异地汇款抽奖需要扣缴个人所得税吗?
  • 一般纳税人申报哪些税种
  • 季度不超过30万免税分录
  • 商业承兑到期兑不出来多久的追诉期
  • 建筑公司支付的预付款担保保函费怎么做账?
  • 企业税务罚款标准
  • 存货 计价
  • 笔记本通用音频驱动程序怎么修复
  • vue数据处理在哪个阶段
  • 十分钟带你了解阿氏圆
  • 月末结转本年利润怎么算
  • 应税消费品投资的筹划方法
  • zendframework3
  • 语义分割入门教程
  • php单例模式连接数据库
  • 应付未付的工资属于负债吗
  • ps如何使用套锁工具剪裁图片
  • 应交税费为负数在资产负债表里怎么填
  • 财务费用的利息费用怎么算
  • 先计提所得税还是先结转成本
  • 会计上弥补亏损
  • 生产型出口企业的概念
  • 小企业会计准则主要按照什么计量
  • 个体户取现金的几种方法
  • concat group
  • 个人销售商品交什么税
  • 销售退回怎么写分录
  • 外贸公司出口退税流程
  • 弃置费用的摊余成本
  • 增值税普通发票需要交税吗
  • 房地产开发企业资质证书
  • 起征点与免征额的联系
  • 公司账户收入多少要扣税
  • 非同一控制下企业合并取得的长期股权投资
  • 多付款项退回怎么做账
  • 厂家核销费用直接扣除吗
  • 企业的借款费用有哪些处理方法
  • 纳税人的住房租金专项
  • 实缴资本和注册资本的比例
  • sysbench内存性能测试
  • Vista、XP、Windows7下非会员如何去除QQ2009的广告
  • VMware虚拟机中卸载java命令
  • 苹果发布会最新消息
  • vmp.exe是什么
  • centos防火墙策略配置
  • w10开发者模式
  • w8系统ie浏览器在哪
  • winedt中文界面
  • 如何判断电脑是不是linux
  • android打包原理
  • cocos2dx怎么用
  • java线程池创建
  • vuex的理解
  • js动态给table添加行
  • dom,ran
  • python 面向对象 类
  • Python中列表元素可通过什么访问
  • 无偿转让股权要交税吗
  • 电子税务局开发票流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设