jquery mobile 터치감 개선 시키기

|


기본적으로 클릭이밴트는 약 300ms의 딜레이 시간을 가지게되므로 사용자 반응성이 매우 취약하다고 볼수있다.


그래서...


터치감 개선의 핵심은 click 이밴트를 사용하지않고 touchstart 사용하는것에서 시작한다.


그러나 데스크탑에서도 동시에 서비스를 하고싶다면 터치이밴트가 동작하지않는 문제가 있다.


vmousedown이밴트를 사용하면 데스크탑에서 마우스로 터치 디바이스에서는 touchstart자동으로 바꿔서 전달하게된다.




리턴값을 false 로 하면 부모로 이밴트가 전달되는것과 기본 이밴트처리가되는것을 막아준다.


그렇지만 이것으로 부족하다 jqm 에서 a태그 또는 button 태그는 touch가 일어나면 vclick을 강제로 한번씩 발생시킨다.

그래서 아래와 같이 vclick이밴트를 따로 한번 더 처리하여준다. 





li 의 하위 단계에있는 a태그에 들어오는 vclick이밴트가 더이상 전파되지않도록 하고 기본적인으로 해주는 동작들을 금지 시킨다.(핸들러 함수객체에서  false값을 반환하게 해서... ) 그렇지않으면 의도하지않게 vclick이밴트가 한번더 들어오게된다. 그렇게 되면 버튼이 두번눌러지는등의 오동작이 일어날수있다.


-예제 소스


무제 폴더.zip














And