LHJ

I'm a FE developer.

iOS에서 click 이벤트 처음 한번 실행 안되는 이슈

19 Nov 2020 » jquery

iOS에서 click 이벤트 처음 한번 실행 안되는 이슈

iOS에서 간헐적으로 처음 클릭이 안먹힌다고 mousedown, pointerdown 이벤트 추가하면, 그래서 click, mousedown, pointerdown 다 적용하면 열고 닫히는 아코디언일 경우에 이슈생김.
닫힐때 닫혔다가 다시열림 - 마우스다운 포인터다운일 때 이벤트 발생하면서 닫히는 콜백펑션 발생 뗄때 click 이벤트발생하면서 다시 열리는 콜백펑션 발생

편법 해결방법

jQuery를 사용할 경우엔 아래처럼 e.originalEvent를 사용하자.
JavaScript의 originalEvent를 선택!!

var touchStartValue = 0;

var startXPoint = function (e) {
  if (e.type === "click") {
    checkMainCertificate();
    return
  }
  if (e.originalEvent.touches.length >= 2) return
  touchStartValue = e.originalEvent.touches[0].clientX;
}
var endXPoint = function (e) {
  if (e.originalEvent.changedTouches.length >= 2) return
  if (Math.abs(e.originalEvent.changedTouches[0].clientX - touchStartValue) < 20) {
    checkMainCertificate();
  }
}

$(".선택자").on('click touchstart', startXPoint);
$(".선택자").on('touchend', endXPoint);