很简单的逻辑,这也是我们想要的!但随之烦恼也就来了:onmouseover并不会只在移进时才触发,onmouseout也不会只在移出时才触发!鼠标在DIV里面移动时也会可能触发onmouseover或onmouseo">
DIV レイヤーの場合、マウスが内側に移動すると onmouseover がトリガーされ、マウスが外側に移動すると onmouseout がトリガーされます。
単純なロジック、これが私たちが望んでいることです。しかし、その後問題が発生します。onmouseover は移動するときだけトリガーされるわけではなく、onmouseout は移動するときだけトリガーされるわけではありません。 onmouseover または onmouseout は、マウスが DIV 内に移動したときにトリガーされる場合もあります。
上の図では、'A': マウスが 'A' (パス '1') に入ると、'A' の onmouseover イベントがトリガーされ、マウスは ' に移動します。 B' (パス '2')、この時点では 'A' が onmouseout (最初) および onmouseover (最後) イベントをトリガーします。
HTML 要素 ('A' レイヤー) 内に他の要素 ('B'、'C' レイヤー) がある場合、これらの内部要素に移動すると最も外側のレイヤーがトリガーされることがわかります。 . (「A」レイヤー) onmouseout および onmouseover イベント。
これら 2 つのイベントのトリガーとなる動作は、本当に望んでいることですか?おそらく、内部に他の要素があるかどうかに関係なく、移動したときにのみ起動するイベントと、移動したときにのみ起動するイベントが必要かもしれません。
解決策
IE では確かに、onmouseenter と onmouseleave という 2 つのイベントが必要です。残念ながら、FF などの他のブラウザはこれをサポートしていないため、実装をシミュレートする必要があります: