在iPad-raphael元素上,mouseover、mouseup和mouseout事件不起作用



我在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上拖动拉斐尔元素上的文本时,上述事件似乎都没有发生。

是否需要添加任何设置或自定义代码才能使其工作?

更新-我尝试附加touchstarttouchend事件,但若我处于拖动事件的中间,那个么它们不会被触发。

好的,对于Raphael,使用:Element.drag(move, start, up)(ref:Element.drag)实现您自己的拖动。原因是jQuery UI拖动事件在Raphael DOM中不稳定(根据我自己的经验)。

  1. move = ...-更新拉斐尔元素(x,y)位置
  2. start = ...-概述拉斐尔元素(检查元素是否已激活)
  3. up = ...-删除Raphael元素的轮廓(可选:分离侦听器)

注意:IOS触摸触发TWOmousedown(),因此#2检查以避免这种情况(不确定IOS 8是否也这样做)

最新更新