我在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上拖动拉斐尔元素上的文本时,上述事件似乎都没有发生。
是否需要添加任何设置或自定义代码才能使其工作?
更新-我尝试附加touchstart
和touchend
事件,但若我处于拖动事件的中间,那个么它们不会被触发。
好的,对于Raphael,使用:Element.drag(move, start, up)
(ref:Element.drag)实现您自己的拖动。原因是jQuery UI拖动事件在Raphael DOM中不稳定(根据我自己的经验)。
move = ...
-更新拉斐尔元素(x,y)
位置start = ...
-概述拉斐尔元素(检查元素是否已激活)up = ...
-删除Raphael元素的轮廓(可选:分离侦听器)
注意:IOS触摸触发TWOmousedown()
,因此#2检查以避免这种情况(不确定IOS 8是否也这样做)