이번에는 더블클릭과 클릭 이벤트의 충돌을 해결할 때 주의할 점을 알려드리겠습니다. 실제 사례를 살펴보겠습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!