>  기사  >  웹 프론트엔드  >  더블클릭과 클릭 이벤트 간의 충돌 해결

더블클릭과 클릭 이벤트 간의 충돌 해결

php中世界最好的语言
php中世界最好的语言원래의
2018-06-09 10:47:031825검색

이번에는 더블클릭과 클릭 이벤트의 충돌을 해결할 때 주의할 점을 알려드리겠습니다. 실제 사례를 살펴보겠습니다.

JS 코드의 동일한 펑션 블록에서는 클릭과 더블클릭 이벤트를 동시에 사용하는 경우가 많은데, 일반적으로 문제가 발생하는 경우가 있는데, 더블클릭을 하면 더블클릭 이벤트가 발생하고, 두 번의 클릭도 이벤트가 실행됩니다. 이러한 충돌은 ZTree 및 DHTMLX에서 자주 발생합니다.

두 이벤트 간의 충돌을 해결하려면 클릭 이벤트를 지연해야 합니다. 이 지연 동안 클릭 이벤트가 감지되면 두 번의 클릭은 더블 클릭 이벤트로 간주되며 더블 클릭 이벤트만 발생합니다. 두 번째 클릭이 적용되지 않도록 가능한 한 빨리 지연 타이머를 지우십시오.

구체적인 코드는 다음과 같습니다.

var clickFlag = null;//是否点击标识(定时器编号)
function doOnClick(...) {
  if(clickFlag) {//取消上次延时未执行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  clickFlag = setTimeout(function() {
    // click 事件的处理
  }, 300);//延时300毫秒执行
}
function doOnDblClick(...) {
  if(clickFlag) {//取消上次延时未执行的方法
    clickFlag = clearTimeout(clickFlag);
  }
  
  // dblclick 事件的处理
}

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

선택 컴포넌트 케이스 사용에 대한 자세한 설명

Vue2 라우팅 탐색 후크를 캡슐화하여 실제 전투에서 사용

위 내용은 더블클릭과 클릭 이벤트 간의 충돌 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.