문제

나는 내 링크에 라이브 이벤트를 묶고 있습니다 전화기 앱. 이벤트는 성공적으로 발사됩니다 (확인 alert()ing), 그러나 어떤 터치 데이터가 이벤트 객체에 첨부되지 않은 것 같습니다. 이것은 모든 터치 이벤트에서 발생합니다. touchstart, touchmove, 그리고 touchend.

$('a').live('touchend', function(event) {
  event.preventDefault();
  alert(event.touches.length); // event.touches should be populated!
});

어떤 아이디어? jquery.live ()가있는 솔이 있습니까?

도움이 되었습니까?

해결책

터치 이벤트는 현재 지원되지 않습니다 이벤트/라이브.

문서에서 :

가능한 이벤트 값 : 클릭, DBLCLICK, MOUSEDOWN, MOUSEUP, MOUSEMOVE, MouseOver, MouseOut, KeyDown, Keypress, KeyUp

현재 지원되지 않음 : Blur, Focus, Mouseenter, Mouseleave, 변경, 제출

필요에 맞는 경우 클릭을 사용하려고 시도하거나 사용으로 전환 할 수 있습니다. 라이브 퀴리, 아마도 그것을 지원할 것입니다. (LiveQuery는 원래 Live가 원래 기반으로 한 것이 무엇인지 잘 모르겠습니다. 왜 그것이 동일한 이벤트를 모두 지원하지 않는지 잘 모르겠습니다)

다른 팁

실제로 .live 메소드를 사용할 수 있습니다. jQuery가 내부적으로 이벤트를 처리하는 방식으로 인해 이벤트가 없습니다. 이벤트를 "고정"하기 위해 jQuery는 이벤트를 클론합니다. 그렇게하면 성능의 이유로 제한된 수의 속성에 대해서만 복사합니다. 그러나 이벤트를 통해 원래 이벤트 객체에 여전히 액세스 할 수 있습니다.

따라서 예제 코드는 다음과 같아야합니다.

$('a').live('touchend', function(event) {
  event.preventDefault();
  console.log(event.originalEvent.touches.length);
});

다음은 복사 된 속성입니다. http://github.com/jquery/jquery/blob/master/src/event.js#l411

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top