2014-11-10 3 views
0

해머를 v2로 업데이트 한 후 더 이상 동작을 인식하지 못합니다. 'switch (event.type)'를 트리거하지만 모든 경우를 건너 뜁니다. '사례'가 더 이상 지원되지 않습니까? 코드의Hammer.js가 'switch'안에 'case'를 건너 뛰었습니다.

예 :

function handleHammer(event) { 
    // disable browser scrolling 
    event.preventDefault(); 

    switch(event.type) { 
     case 'tap': 
      the_single_post.removeClass('grab'); 
      var tapPos = (event.gesture.center.pageX) - (element.offset().left); 

      if (tapPos > paneWidth/2) { 
       hammer.next('easeinout'); 
      } 
      else if (tapPos < paneWidth/2) { 
       hammer.prev('easeinout'); 
      } 
      break; 

     case 'drag': 
      (etc.) 
    } 
} 
+1

'event.type'에 저장된 내용을 보았습니까? – Mike

+0

좋아요, 문제는 '이벤트'가 handleHammer로 올바르게 전송되지 않았기 때문입니다. 그러나 그것을 고치면 다음과 같은 오류가 발생합니다 : 'Uncaught TypeError : 속성 'center'of undefined가 읽을 수 없습니다. – meneerfab

+1

'event.gesture'는 존재하지 않습니다. 정의되지 않았습니다. 무엇을 기대하고 있었습니까? 거기에'event.gesture'에? – Mike

답변

2

Hammer.js 2.0은 처음부터 다시 작성하고 완전히 다른 작동합니다. 예를 들어 끌기 이벤트가 없으면 대신 팬 이벤트가 지원됩니다. hammer.js 2.0으로 전환하기 위해 꽤 많은 코드를 변경해야합니다.

+0

Do 당신은 2.0 경험이 있습니까? 그것을 업데이트하는 것이 가치있는 일입니까, 성능 현명합니까? – meneerfab

+1

성능에 대해 말할 수는 없지만 두 버전 모두에서 일반적으로 상당히 좋습니다. 2.0은 좀 더 깔끔한 프로그래밍 모델을 가지고 있으며, 아마도 미래의 작업에서 (터치 액션 사용과 같은) 최신 브라우저 기능을 사용하면 더욱 좋습니다. 또한 2.0은 다중 사용자 멀티 터치를 제공합니다. 그러나 멀티 손가락 제스처가 여러 div에 닿으면 문제가 될 수있는 몇 가지 단점이 있습니다. –

관련 문제