다양한 장치에서 작동해야하는 모바일 웹 사이트에서 작업하고 있습니다. 지금 당장 나에게 두통을주는 것은 BlackBerry입니다.
키보드 클릭과 터치 이벤트를 모두 지원해야합니다.
이상적으로는 다음을 사용합니다.
$thing.click(function(){...})
그러나 우리가 겪고있는 문제는 이러한 블랙 베리 장치 중 일부는 터치 시간부터 클릭 트리거까지 매우 성가신 지연이 있다는 것입니다.
해결 방법은 touchstart를 대신 사용하는 것입니다.
$thing.bind('touchstart', function(event){...})
그러나 두 이벤트를 바인딩하고 어떻게 시작합니까? 키보드 장치에는 여전히 클릭 이벤트가 필요하지만 터치 장치를 사용하는 경우 클릭 이벤트 발생을 원하지 않습니다.
보너스 질문 : 어쨌든 터치 스타트 이벤트가없는 브라우저를 추가로 수용 할 수 있습니까? 이를 조사 할 때 BlackBerry OS5는 터치 스타트를 지원하지 않는 것 같으므로 해당 브라우저의 클릭 이벤트에 의존해야합니다.
추가:
아마도 더 포괄적 인 질문은 다음과 같습니다.
jQuery를 사용하면 동일한 바인딩으로 터치 상호 작용과 마우스 상호 작용을 모두 처리하는 것이 가능 / 권장됩니까?
이상적으로 대답은 '예'입니다. 그렇지 않은 경우 몇 가지 옵션이 있습니다.
1) WURFL을 사용하여 장치 정보를 얻으므로 자체 장치 행렬을 만들 수 있습니다. 기기에 따라 터치 스타트 또는 클릭을 사용합니다.
2) JS를 통해 브라우저에서 터치 지원을 감지하십시오 (더 많은 연구가 필요하지만 그렇게 할 수있는 것처럼 보입니다).
그러나 여전히 한 가지 문제가 남아 있습니다. BOTH를 지원하는 장치는 어떻습니까? 당사가 지원하는 일부 전화 (즉, Nokias 및 BlackBerries)에는 터치 스크린 과 키보드 가 모두 있습니다. 그래서 그런 종류의 원조로 다시 원래 질문으로 돌아갑니다 ... 어쨌든 두 가지를 동시에 허용 할 수있는 방법이 있습니까?
.bind('touchstart mouseup')
하면 문제가 해결됩니다 (아래 설명 중 하나를 기반으로 함)