どちらのイベントも共通です。
これら 2 つのイベントの違いを理解しますが、実際にはこれら 2 つのイベントの違いを使用して一部の操作を実行することはありません。
通常、onclick を使用する場合は onmousedown も使用できますが、onclick を使用する場合の方が多くなります。
今日はonmousedownを使わなければいけない場面に遭遇したので、ここに記録しておきます。
最初に違いについて話しましょう : onclick は、マウス クリックのバウンス後にトリガーされるイベントです。 onmousedown は、マウスが押された後にトリガーされるイベントです。
単に onclick = onmousedown onmouseup; と言うだけです。
ある場所でマウスを押してからマウスを移動し、別の場所でマウスを放すと、onmousedown イベントはトリガーされますが、onclick イベントはトリガーされません。
今日実装したい関数は、a タグをクリックして別のページに切り替えることです。元のページが閉じる前に関数をトリガーする必要があります。ウィンドウアンロードではありません。
onclick イベントは以前に使用されており、IE でテストした場合は問題ありませんでしたが、FF でテストした場合、ページが破棄される前にこの関数を実行する時間がないことがわかりました。
onmousedown イベントを使用すると、関数が実行されることを保証する方法はありませんが、マウスが跳ね上がった後にジャンプが実行されるため、関数の実行に一定の時間を稼ぐことができます。
解決策 1: onclick="return test()"、関数が true を返した場合にのみジャンプが実行されます。これは新たな問題を引き起こします。テスト関数内でマルチスレッドプログラムや新しくオープンしたスレッドプログラムを実行すると、最初に true を返してジャンプし、新しくオープンしたスレッドは実行されません。たとえば、次の関数: