在iPad上 - raphael元素鼠标悬停,mouseup,mouseout事件无效

时间:2014-09-23 14:28:28

标签: svg javascript-events raphael mouseover jquery-draggable

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

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

更新 - 我尝试附加touchstarttouchend事件,但如果我处于拖拽事件的中间,则不会被触发。

1 个答案:

答案 0 :(得分:0)

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

  1. move = ... - 更新Rapheal元素(x,y)职位
  2. start = ... - 概述Rapheal元素(检查元素是否已激活)
  3. up = ... - 删除Raphael元素的大纲(可选:分离监听器)
  4. 注意:IOS触摸触发 TWO mousedown(),因此#2检查以避免这种情况(不确定IOS 8是否也这样做)