왜냐하면 JavaScript에서는 mousedown, mouseup 및 click의 실행 순서가 왼쪽에서 오른쪽이기 때문입니다. 더 중요한 것은 일단 mousedown 이벤트가 활성화되면 일반적인 상황에서(mousedown 이벤트에 바인딩되지 않은 메서드는 경고와 유사한 메서드를 사용합니다. -up 개체 상자가 차단됩니다. 이벤트 전달이 없으면(즉, 후속 호출 이벤트가 손실됨) 후자의 두 이벤트가 확실히 활성화됩니다. 일반적으로 우리는 레이블에 하나의 클릭 이벤트만 바인딩합니다. 실제로 클릭 이벤트를 트리거하면 mousedown, mouseup 및 기타 이벤트도 호출되지만 호출 주기가 매우 짧고 이 두 이벤트를 바인딩하는 관련 함수를 작성하지 않았으므로 성공했습니다. 눈치 채지 마세요. 이제 이러한 이벤트를 레이블에 동시에 등록하고 지정된 핸들러 함수를 바인딩하려고 한다고 가정해 보겠습니다. 실제 개발에서는 아래에서 언급한 문제에 직면하게 됩니다.
먼저 간단한 예시를 통해 테스트해보고 제가 언급한 문제를 발견해 직관적인 느낌을 받으시고, 제 솔루션을 살펴보세요.