これが良い質問かどうかはわかりませんが、これに関する意見を聞きたいです。
2 種類のイベントがあるとします。
A: a mouse click
B: mouse is currently inside a box
また、2 種類のイベント ハンドラー関数があるとします。
f: console.log("mouse is clicked")
g: console.log("mouse is clicked inside the box")
ここで、コードで実行したいのは、ボックス内以外の場所でマウスをクリックすると、「マウスがクリックされました」というメッセージが表示されることです。ただし、ボックス内でマウスをクリックすると、「ボックス内でマウスがクリックされました」というメッセージが表示されます。
私の現在の実装方法は次のようになります。
if (A) then {f()}
if (A and B) then {g()}
つまり、f を A のリスナーとして登録し、A と B の両方が成立したときに発火する新しいイベントを作成し、そのイベントのリスナーとして g ans を登録しました。
もちろん、ボックス内でマウスをクリックすると、「マウスがボックス内でクリックされました」「マウスがクリックされました」という 2 つのメッセージが表示されます。
私が探している単一の「マウスがボックス内でクリックされた」というよりも。
何が起こっているのかを定義する正式な方法はありますか?また、それに対処する最善の方法は何ですか? つまり、g が呼び出されたときに f の呼び出しが抑制されるように、イベント ハンドラー g がハンドラー f よりも優先されるようにする必要があります。