Ну, .hover()
связывает два обработчика для событий mouseenter
и mouseleave
, так что это более удобный способ, а также более простой понять цель.
mouseenter
отличается от mouseover
тем, что mouseenter
не запускается , если курсор находится над / входит в дочерний элемент элемента, с которым связан обработчик .
Он запускается только один раз, когда курсоры входят в элемент. mouseover
всегда срабатывает, даже если курсор находится над дочерним элементом.
Лучший способ увидеть разницу - взглянуть на пример mouseleave()
.
Кроме того, mouseover
и mouseout
- это реальные события JavaScript, тогда как mouseenter
и mouseleave
- это события, предоставляемые jQuery (afaik).
В конце концов, это зависит от того, чего вы хотите достичь. Нет правильного или неправильного, и все эти методы имеют свою цель. Если вы не покажете какой-нибудь код, сказать больше нечего.
Если вы имеете в виду :hover
в CSS, и вы можете достичь желаемого эффекта с ним, пойти на это. Если для какой-либо проблемы есть решение, отличное от JS, всегда выбирайте это.