为了账号安全,请及时绑定邮箱和手机立即绑定

列表做了拖拽滚动以后,列表内表单的默认事件不起作用

列表做了拖拽滚动以后,列表内表单的默认事件不起作用

犯罪嫌疑人X 2019-03-13 14:15:42
这样的一个列表,因为要展示的字段太多了,我自己封装了左右拖拽滚动的方法,因为mousedown的时候阻止默认事件。列表内的表单的focus,blur等默认事件都不起作用。去掉mousedown里的return false就正常了。但是拖拽的时候火狐和ie下会选中文字。改如何解决才能正常拖拽滚动不选中文字,同时表单的默认事件正常。拖拽滚动的方法:var el = this.$(selector)var doc = this.$(document)el.on('mousedown', function (ev) {var preX =  ev.clientXvar Left = el.scrollLeft()doc.on('mousemove.drag', function (ev) {  var disX = preX - ev.clientX  Left += disX  el.scrollLeft(Left)  preX = ev.clientX  return false})return false})doc.on('mouseup', function (ev) {doc.off('mousemove.drag')})
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

没想到比较好的解决办法,试了一下这么干:mousedown时不return false或者preventDefault,然后阻止列表里面文字部分被选中,这样左右拖动能带动滚动条正常滚动,不过假如用户想选中文字复制就不行了。

查看完整回答
反对 回复 2019-03-31
  • 2 回答
  • 0 关注
  • 788 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信