Почему событие onMouseOver запускается, когда мышь перемещается только во внутренний элемент?

Когда указатель мыши наводится на внутренний элемент, сначала срабатывает событие mouseOut для внешнего элемента, затем срабатывает элемент mouseOver для внутреннего элемента, а затем срабатывает элемент mouseOver для внутреннего элемента.

Почему это происходит? Поскольку внутренний элемент технически все еще находится внутри внешнего элемента, поэтому мышь не покидает внешний элемент, когда перемещается во внутренний элемент. Есть ли способ предотвратить это?

Полный пример здесь: http://jsfiddle.net/pMCeu/4/


person Stephen Ou    schedule 16.05.2011    source источник


Ответы (2)


Чтобы избежать этого, вы должны использовать mouseenter и mouseleave вместо mouseover и mouseout.

Это связано с всплытием событий. взгляните на этот пост, чтобы получить немного больше информации.

person locrizak    schedule 16.05.2011

Привет, решение выше правильное и полное. но вы также можете использовать событие mousemove

person doronazu    schedule 19.11.2020