2014-09-23 10 views
1

jquery 드래그 (jquery draggable을 사용하여 드래그 한 요소)를 수신하는 rapahel 요소에 mouseover, mouseup, mouseout 이벤트를 설정했습니다.iPad에서 - 래퍼 요소 mouseover, mouseup, mouseout 이벤트가 작동하지 않습니다.

this.elem.mouseover(this.handleMouseOver); 
this.elem.mouseout(this.handleMouseOut); 
this.elem.mouseup(this.handleMouseUpOver); 

handleMouseOver : function(e) { 
}, 
.... 

및 다른 2 개의 핸들러에 대해서도 마찬가지이다.

위의 이벤트 중 하나도 ipad/iphone의 lraphael 요소에서 텍스트를 드래그 할 때 아무런 반응이없는 것으로 보이지만 데스크톱 브라우저에서 정상적으로 작동합니다.

작동하도록 설정이나 맞춤 코드가 추가되어야합니까?

업데이트 - 이벤트를 첨부하려고했으나 드래그 이벤트가 중간에있는 경우에는 해고되지 않습니다.

+0

ipad에서 touchevents가 필요한지 궁금하십니까? – Ian

+0

나는 touchstart와 touchend를 바인딩하려고 시도했다. 그러나 드래그 이벤트가 이미 실행 중이므로, 래퍼 요소에서 해당 드래그 이벤트를 감지하지 못하기 때문이다. – Mutant

+0

http://touchpunch.furf.com/이이 문제를 –

답변

0

라파엘의 경우, Element.drag(move, start, up) (참조 : Element.drag)과 함께 자신의 드래그를 구현하십시오. 이유는 jQuery UI 끌기 이벤트가 Raphael DOM (내 자신의 경험)에서 안정적이지 않습니다. (: 분리 리스너 옵션)

  1. move = ... - - (요소가 이미 활성화 된 경우 검사)를 Rapheal 요소 개요
  2. up = ... - 라파엘 요소의 개요를 제거 Rapheal 요소 (x,y) 위치
  3. start = ...를 업데이트

    참고 : IOS 터치 트리거 TWO이므로이 문제를 피하려면 # 2 검사를 수행하십시오 (IOS 8이 이것을 수행하는지 확실하지 않음).

+0

정확하게 이해했다면 드래그하는 요소에 대해 라파엘 요소를 사용하는 것이 좋습니다. 현재 HTML 요소와 나는 래퍼 요소 위로 드래그합니다. 말하자면, 그 래퍼 요소를 드래그하여 다른 래퍼 요소 위에 놓는 것입니다. 드롭 이벤트가 호출 된 요소를 어떻게 감지 할 수 있을까요? – Mutant

+0

라파엘도이 모든 것을 처리합니다. 제품 견적 : "... 요소가 다른 요소 위로 드래그 될 때 drag.over. 도 실행됩니다." –