我在rapahel元素上设置了mouseover,mouseup和mouseout事件,它监听jquery拖动(使用jquery draggable拖动的元素)。
this.elem.mouseover(this.handleMouseOver );
this.elem.mouseout( this.handleMouseOut );
this.elem.mouseup( this.handleMouseUpOver );
handleMouseOver : function(e) {
},
....
和其他两个处理程序类似。
它可以在桌面浏览器上正常工作,但是当我在ipad / iphone上拖动raphael元素上的文本时,上述事件似乎都没有启动。
是否需要添加任何设置或自定义代码才能使其正常工作?
更新 -
我尝试附加touchstart
和touchend
事件,但如果我处于拖拽事件的中间,则不会被触发。
答案 0 :(得分:0)
好的,对于Raphael,用Element.drag(move, start, up)
(参考:Element.drag)实现自己的拖动。原因是使用Raphael DOM jQuery UI拖动事件不稳定(根据我自己的经验)。
move = ...
- 更新Rapheal元素(x,y)
职位start = ...
- 概述Rapheal元素(检查元素是否已激活)up = ...
- 删除Raphael元素的大纲(可选:分离监听器)注意:IOS触摸触发 TWO mousedown()
,因此#2检查以避免这种情况(不确定IOS 8是否也这样做)