두 사건 모두 공통적이다.
이 두 이벤트의 차이점을 이해하지만 실제로 일부 작업을 수행하는 데 이 두 이벤트의 차이점을 사용하지 마세요.
일반적으로 onclick을 사용할 때 onmousedown을 사용할 수도 있으며, onclick을 사용할 때 더 자주 사용할 수 있습니다.
오늘은 온마우스다운을 사용해야 하는 경우가 있어서 여기에 기록해두겠습니다.
먼저 차이점에 대해 이야기하겠습니다: onclick은 마우스 클릭이 바운스된 후에 실행되는 이벤트입니다. onmousedown은 마우스를 누른 후 트리거되는 이벤트입니다.
간단히 onclick = onmousedown onmouseup이라고 말하면 됩니다.
한 곳에서 마우스를 누른 후 다른 곳에서 마우스를 놓으면 onmousedown 이벤트가 발생하지만 onclick 이벤트는 발생하지 않습니다.
오늘 구현하려는 기능은 a 태그를 클릭하여 다른 페이지로 전환하는 기능입니다. 원본 페이지가 닫히기 전에 해당 기능이 실행되어야 합니다. 창 언로드가 아닙니다.
onclick 이벤트는 이전에도 사용됐는데, IE에서 테스트할 때는 문제가 없었는데, FF에서 테스트해 보니 페이지가 소멸되기 전까지 이 함수가 실행될 시간이 없었던 것으로 나타났습니다.
onmousedown 이벤트를 사용하면 함수가 실행된다는 보장은 없지만 마우스가 튕긴 후에 점프가 실행되기 때문에 함수 실행을 위해 일정 시간을 벌게 됩니다.
해결책 1: onclick="return test()", 함수가 true를 반환하는 경우에만 점프가 실행됩니다. 이로 인해 새로운 문제가 발생합니다. 테스트 함수에서 멀티 스레드 프로그램이나 새로 열린 스레드 프로그램을 실행하면 먼저 true를 반환하고 점프하며 새로 열린 스레드는 실행되지 않습니다. 예를 들어 다음 함수는