방법 Zepto는 document.body
에 touchstart
, touchend
및 touchmove
이벤트에 청취자를 결합입니다 터치 이벤트를 관리합니다. 그런 다음 전송할 이벤트를 계산하고 touchstart
이벤트를 수신 한 요소에서 이벤트를 트리거합니다. 그런 다음이 이벤트는 DOM 트리를 통해 각 요소의 리스너를 호출합니다.
이 우리에게 예방 슬쩍 이벤트의 두 가지 방법을 제공합니다
첫째, 당신은 같은 것을 할 수있는 : 당신의 자식 요소가 하나 개의 터치 이벤트를 받았을 경우
이
$('#my-child-element').bind('touchstart touchend touchup', function(event) {
event.stopPropagation();
});
, 그것은으로 전파되는 것을 방지됩니다 부모 요소, 가장 중요한 것은 body 태그. 이렇게하면 Zepto 터치 프로세서가 아무 것도하지 못하게하고 해당 요소에서 작동하는 동안 스 와이프, 탭, 단일 탭, longTap 및 doubleTap 이벤트를 차단합니다.
도 슬쩍 이벤트 거품, 당신은 또한 단지 페이지 변경을 청취하여 요소에 버블 링에서 해당 특정 이벤트를 막을 수 있으므로 와이프 : 이것은 여전히 Zepto가 내부 이벤트를 생성받을 수
$('#my-child-element').bind('swipeLeft swipeRight', function(event) {
event.stopPropagation();
});
당신의 하위 요소는 있지만 외부는 아닙니다. Zepto 탭 이벤트는 여전히 자녀의 모든 요소에 적용됩니다. 여기
바이올린 : http://jsfiddle.net/bnickel/dUuUd/
나는 스 와이프 이벤트가 문서 레벨 이벤트에서 생성된다고 생각합니다. 엘리먼트 레벨 touch * 이벤트가'stopPropigation()'을 호출하면 스 와이프 이벤트가 생성되지 않습니다. –
안녕하세요, 짝짓기해서 죄송합니다. 바보 (나!)에 대해 설명해 주시겠습니까? – Chris