코딩생활의 소소한 뒤통수
새로운 라이브러리의 테스트는 언제나 괴롭다.
이벤트 모델을 과감하게 window, document 레벨에서 받고 전부 위임으로만 처리하는 프레임웍을으로이전 중인데, 아이폰에서 document나 window레벨의 click 이벤트가 발생하지 않는다는 걸 처음 알게 되었다.
모바일에서 click이벤트가 선호되는 이유는 간단하다.
touchstart는 닿자마자 반응하여 유저가 행동을 유예할 찬스가 없어 당황스러움을 주니 보통은 기각되고 touchend에 주면 타겟 밖에서 발생해도 이벤트가 보고된다. 이를 방지하려면 touchstart에서 플래그를 활성화시키고 touchleave에서 비활성화시키게 하여 touchend에서 여전히 플래그가 활성화되어 있는 경우만 작동하게 하면 된다. 문제는 touchleave를 지원하지 않는 경우가 상당해서 쓸 수 없다는 점이다.
결국 touchend의 포인트 좌표로 엘리먼트를 얻어 타겟과 일치하는지를 체크하는게 현재 내 구현의 상황이다.
> 다음글