位置: 编程技术 - 正文

jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案(jquery排序上升和排序下降)

编辑:rootadmin

推荐整理分享jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案(jquery排序上升和排序下降),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery拖拽流程布局,jquery 拖拽排序,jquery拖动div,jquery排他,jquery拖动div,jquery排序函数,jquery拖拽流程布局,jquery 拖动排序,内容如对您有帮助,希望把文章链接给更多的朋友!

前些日子不是在做使用Jquery-UI实现一次拖拽多个选中的元素操作嘛,在持续完善这个组件时遇到了一个关于拖放排序的bug。今天就着图片和代码重现一下,也顺便告诉大家如何解决这个问题。

首先先上图描述一下问题:

先来张正常的图:

如上图,整个div层被我设置了固定高度和滚动条。页面如上所示,在可排序区域(黄色列表区域)可见情况下,从左面向右边拖拽时,可以成功触发排序的操作。

接着再来张bug图

上图为bug触发说明图,将滚动条拖拽到底部(保证右侧可排序的黄色区域在div中不可见就行),此时是看不见黄色的排序列表的。在这个情况下,拖拽需要排序的元素,然后鼠标一直拖拽向上移动到可排序的列表区域时,会发现排序操作没有任何作用。无法触发排序功能。

几经查找,终于发现了一个方法。来看一下:

jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案(jquery排序上升和排序下降)

猜测是,鼠标在红色边框区域内拖拽移动到排序位置时,没有计算涉及到滚动条的距离等信息。看到了上面的方法说明,本人就尝试了一下,定义了div的滚动事件机制,在滚动事件触发时,加载refresh方法来刷新位置信息。方法定义好后,再次重复试验上面的两种情况,okay,都可以搞定了。

下面给出demo的代码,大家在遇到这种情况下就可以将整个小bug灭掉了。

以上,就是记录jqueryui使用过程中遇到的一个问题。遇到同样问题的小伙伴可以试一试~~

结尾还遗留了一个类似问题,但不能使用上面的方式解决,如果有遇到下面这种情况的小伙伴,求告知。再此也描述一下问题:

其实,在实际的使用过程中,关于在有滚动条时使用jqueryui的交互事件,依然会有一些问题。也尝试看一下jqueryui的源码,对比一下,发现确实在draggable中设置connectToSortable时,它的拖拽排序方法记录位置信息时并不准确,应该说缓存的位置信息不能及时更新,一次计算错误后,导致后续的位置越来越偏移。如下图:

可以看到中间部分,我拖拽了一个元素,此时我的鼠标在在中间的黄色区域,但是拖拽元素(淡蓝色方框)却距离鼠标位置很远。这个情况的发生情况是这样的,在左侧拖拽元素后,一直在中间面板拖动,中间面板有很多个小容器,它们都可以盛放拖拽的元素。鼠标在这些容器上来回移动几次后就会出现鼠标位置和元素位置偏移问题。

这个问题不是前面提及的在滚动条事件中加上refresh方法就可以解决了。目前这个问题看jqueryui源码应该是临时记录的位置信息问题,也没有计算滚动条距离等。想尝试一下改动jqueryui源码,改了半天,未见成效啊。

遗留下了这个问题。如果有知道该问题的解决方案的小伙伴, 求告知解决方案啊~~~

Jquery Easyui对话框组件Dialog使用详解() Dialog对话框组件依赖于Window(窗口)组件、linkbutton组件加载方式Class加载divclass="easyui-dialog"title="弹出框"data-options="iconCls:'icon-add',resizable:true,modal:true"style="w

如何解决jQuery EasyUI 已打开Tab重新加载问题 先给大家说下我的需求,如下:点击左侧已经打开的tab可以刷新重新加载datagrid。也就是说解决easyui左侧tab重新刷新加载问题实现。实现如下:functionaddT

详解Jquery的事件操作和文档操作 对于熟悉前端开发的小伙伴,相信对于Jquery一定不陌生,相对于JavaScript的繁琐,Jquery更加的简洁,当然简洁不意味着简单,我们可以使用Jquery完成我们

标签: jquery排序上升和排序下降

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

上一篇:jQuery Easyui datagrid editor为combobox时指定数据源实例

下一篇:Jquery Easyui对话框组件Dialog使用详解(14)(jqueryui easyui)

  • 增值税普通
  • 定期定额个体工商户怎么报税
  • 运输公司的车辆保险费计入什么科目
  • 开普票需要公对公转账吗
  • 保本理财收益计入什么科目
  • 现金流量补充表的编制
  • 有会计从业资格证还有用吗
  • 房屋出租的成本怎么算
  • 递延所得税资产和负债怎么计算
  • 累计折旧计入
  • 当期留抵税额怎么计算
  • 资本化支出加计摊销形成的差异
  • 支付购买机器的价款
  • 上月未抵扣完的进项税本月可以抵扣吗
  • 税负几个点
  • 补缴税款罚款
  • 航天发票上传不成功怎么手动上传
  • 2020年资金账簿印花税最新规定
  • 损失性费用的会计科目有
  • 补交之前年度税款怎么调账
  • 医疗机构免征增值税如何申报
  • 评估的房产如何入账
  • 个人借公司款账务处理
  • 公益事业捐赠
  • 冲回存货跌价准备
  • window10安装教程u盘
  • Linux系统中Squid代理服务器配置全过程解析
  • 服务业结转成本与收入如何配比
  • php tars
  • 销售货款未收回应该从工资中扣除吗
  • explorer.exe是啥意思
  • 现金折扣发生销售退回
  • php登录注册页面完整代码
  • 捐赠利得的会计科目
  • 公司注册实收资本能为0嘛
  • 百度编辑器使用方法
  • mongodb数据库操作遇到的问题和解决方案
  • 罚款收入算是营收收入吗
  • 结息会计凭证怎么写
  • 三证合一后个体交税吗
  • sqlplus查询结果换行
  • 增值税税控系统专用设备费及技术维护费抵扣
  • 预缴增值税需要提供什么资料
  • 财务费用包含了利息费用吗
  • 收到住宿费普通发票会计分录
  • 电子商业承兑汇票的承兑有以下几种方式
  • 背书转让的电子汇票怎么查询
  • 以自营方式建造固定资产
  • 未支付房租怎么做账
  • 投资收益期末余额在借方还是贷方
  • 融资租赁与经营租赁的区别主要是
  • 销售费用怎么考核
  • 发生以下情况
  • 固定成本包括哪些项目
  • 如何设置存货计价方法有哪些
  • win2000安全模式怎么进
  • Windows Server 2008禁止模块安装提升网络性能
  • LINUX下的磁盘编辑工具
  • win10系统下怎么安装caxa2016电子图板 caxa2016电子图板安装详细图文教程
  • win7装win8系统教程
  • win8系统修复在哪里
  • element拖拽
  • listview.selecteditems
  • 笔记本电脑没有鼠标怎么多选文件
  • js选择框全选
  • bitmap压缩到指定尺寸
  • js的模块化可以怎么做
  • nodejs定义数组
  • js中split方法的作用
  • 安卓中adapter
  • jquery 使用
  • js获取宽高
  • JQuery给select添加/删除节点的实现代码
  • position属性含义
  • 河南省地方税务局公告2017年第4号
  • 政府无偿划拨土地涉及的税费
  • 新加坡政治体制的介绍
  • 最新专票税率几个档
  • 税务局的人为什么那么拽
  • 劳务合同和劳务协议的区别和联系
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设