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

如下情况,分析了好久都没找到原因,希望大家帮忙,谢谢!

如下情况,分析了好久都没找到原因,希望大家帮忙,谢谢!

PIPIONE 2023-03-22 14:10:09
我做了一个标签页面,标签所在区域的结构是三层div,最下层表示标签栏,中间是标签滚动区域,最上层是一个一个的标签(仿照Ext的tabpanel)。 当拖动某个标签时,我做的处理是,监听标签上的鼠标按下动作,然后复制并隐藏此标签,将此标签的副本的position属性设为absolute,并作为滚动区域的第一个节点,然后监听标签栏上的鼠标移动事件及鼠标抬起事件,鼠标移动时此标签的副本会跟着鼠标移动,抬起时,根据位置更改标签的位置。 这个操作在google浏览器中可以正确实现,但在ie下(我用的ie8),拖拽时鼠标会变为禁止样式,副本不会跟着鼠标移动,鼠标抬起后,副本才会跟着移动,鼠标再做一次点击动作,标签才会移动到正确位置。
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

mousemove 和 mouseup 要绑定到 document 上,还有就是坑爹的 ie 当拖拽到窗口外的时候 mouseup 事件会丢失,因此要在 mousemove 中做针对IE的 hack 检测并自己触发 mouseup。比如在 jqueryui 的 drag & drop 中的 mousemove 的处理方法 
Javascript代码 

  1. _mouseMove: function(event) {  

  2.     // IE mouseup check - mouseup happened when mouse was out of window  

  3.          

  4.         if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {  

  5.             return this._mouseUp(event);  

  6.         }  

  7.   

  8.         // other mouse move process code ....  

  9.     },  


查看完整回答
反对 回复 2023-03-24
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

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