2015-02-04 1 views
1

클릭이 발사되지 않도록하려면 click 이벤트 처리기에서 e.preventDefault()으로 전화 할 수 있습니다. 이렇게하면 mousedown에 이벤트를 바인딩하고 마우스가 특정 거리를 이동하는 것과 같은 일이 발생하는지 확인하고, 그렇다면 마우스 버튼을 놓을 때 클릭을 방지합니다.e.preventDefault()를 호출하여 터치 장치에서 "클릭"을 취소해야하는 터치 이벤트는 무엇입니까?

클릭 핸들러 e.preventDefault()은 특정 터치 장치의 클릭을 방지하지 못하는 것 같습니다. (저는 iPad mini에서 테스트 중입니다). 나는 또한 아무 것도하지 않는 것 같아 touchend 핸들러에서 e.preventDefault()을 호출 해 보았습니다.

touchstarte.preventDefault()을 호출하면 페이지가 스크롤되는 것을 차단하고 너무 빨리 클릭을 취소해야하는지 알 수 없으므로 쓸모가 없습니다. touchmove 만 취소를해야하는지 결정할 수 있습니다.

사용자가 링크 인 드래그 가능한 요소를 드래그하면 fingerup에서 링크의 '클릭'을 취소해야합니다. 이것은 클릭 이벤트를 취소하여 데스크톱에서 정상적으로 작동합니다.

사용자가 손가락을 들었을 때 "무장 한 클릭"이 중지되는 것을 취소 할 수있는 상응하는 이벤트가 있습니까?

+0

당신이 jsfiddle 또는 무언가의 코드를 표시 할 수 있습니다 :

사용 예는 다음과 같다? – Ryo

답변

0

iOS는 click 이벤트 속성을 등록하지 않는 것으로 알려져 있습니다. 이는 아이폰 OS가 determine how a click should be interpreted as에 조금 더 기다린다는 사실 가능성이 높습니다 :

  • 스크롤의
  • 시작을 패닝 핀치 및 확대/축소 제스처
  • 두 개 또는 여러 손가락의 시작 (우리가 캡처하려는)을 두 번 눌러
  • 간단한 탭 이벤트의
  • 시작의 시작 터치 한 채로

따라서 jQuery Mobile에 포함 된 tap 이벤트를 청취 할 수 있습니다.

jQuery Mobile Tap 이벤트는 단일 대상 오브젝트에서 발생하는 신속한 완료 터치 이벤트 이후에 트리거됩니다. 터치 동작의 릴리스 상태에서 트리거되는 표준 클릭 이벤트와 동일한 제스처 입니다. 그래서, jQuery를 Mobiel 그것이 진짜 tap 이벤트가 참인지 확인하고를 발생하는 경우 :이 조건부로 시작하고 목표는 동일 중단 여부를 결정하는 touchstart에 듣기에 의존하기 때문에

tap 이벤트는, 기본적으로 설치되지 않았습니다 맞춤형, 기본이 아닌 이벤트 tap. 이 논리는 original source file에서 볼 수 있으며, 이후 75 번째 줄에서는 ./js/events/touch.js입니다.

$(selector).on('tap', function(e){ 
    e.preventDefault(); 
}); 
+0

'Tap '은 네이티브 이벤트를 기반으로해야합니다. 맞습니까? Jquery 모바일 라이브러리가 필요없이 동일한 작업을 수행 할 수있는 방법이 없을까요? Jquery가 있지만 Jquery 모바일은 없습니다. – Nick

+0

'tap' 이벤트는 네이티브 브라우저 이벤트가 아니지만 가능한 한 조건 적으로 jQuery 모바일 라이브러리로 해석되어 최대한의 장치 호환성을 보장합니다 : https://github.com/jquery/jquery-mobile/blob/ master/js/events/touch.js. 기본적으로 '시작'이벤트는 시작 타겟이 정지 타겟과 같으면 평가됩니다 (75-76 행). 다른 방법으로는이 바이올린 예제를 사용하여 수동으로 jQ 모바일 라이브러리를 포함하지 않고 탭 이벤트를 등록 할 수 있습니다 : http://jsfiddle.net/gianlucaguarini/56Szw/ – Terry

+0

'tap'이 네이티브가 아니라면'preventDefault'를 호출하면됩니다. 도와 줘. 네이티브 이벤트에'preventDefault'가 필요합니다. 'touchend'에'preventDefault'를 호출하면 손가락이'a' 엘리먼트 위로 내려 갔을 때 클릭을 멈추게하는 것 같지 않습니다. – Nick

관련 문제