cuándo elegir la función mouseover () y hover ()

¿Cuáles son las diferencias entre jquery .mouseover() y .hover() ? Si son totalmente iguales ¿por qué jQuery usa ambos?

De la documentación

.mouseover() : fuente

Vincula un controlador de eventos al evento de JavaScript “mouseover” o activa ese evento en un elemento.

.hover() : fuente

Vincule uno o dos controladores a los elementos coincidentes para que se ejecuten cuando el puntero del mouse entre y salga de los elementos.

Llamar $(selector).hover(handlerIn, handlerOut) es la abreviatura de: $(selector).mouseenter(handlerIn).mouseleave(handlerOut);

.mouseenter() : fuente

Enlace un controlador de eventos para que se active cuando el mouse entre en un elemento, o active ese controlador en un elemento.

mouseover activa cuando el puntero también se mueve al elemento secundario, mientras que el mouseenter dispara solo cuando el puntero se mueve al elemento enlazado.

Lo que esto significa

Debido a esto, .mouseover() no es lo mismo que .hover() , por el mismo motivo .mouseover() no es lo mismo que .mouseenter() .

 $('selector').mouseover(over_function) // may fire multiple times // enter and exit functions only called once per element per entry and exit $('selector').hover(enter_function, exit_function) 

.hover() función .hover() acepta dos argumentos de función, uno para el evento del mouseenter y otro para el evento mouseleave .

Puedes probarlo http://api.jquery.com/mouseover/ en la página jQuery doc. Es una pequeña y agradable demostración interactiva que lo deja muy claro y puedes verlo por ti mismo.

En resumen, notará que un evento mouse over ocurre en un elemento cuando está sobre él, proveniente de su hijo O elemento primario, pero un evento mouse ingresado solo ocurre cuando el mouse se mueve desde el elemento padre al elemento.

De los documentos oficiales: ( http://api.jquery.com/hover/ )

El método .hover () vincula a los manejadores tanto para el mouseenter como para el mouse para guardar eventos. Puede usarlo para simplemente aplicar el comportamiento a un elemento durante el tiempo que el mouse está dentro del elemento.

Como puedes leer en http://api.jquery.com/mouseenter/

El evento JavaScript de mouseenter es propiedad de Internet Explorer. Debido a la utilidad general del evento, jQuery simula este evento para que pueda ser utilizado independientemente del navegador. Este evento se envía a un elemento cuando el puntero del mouse ingresa al elemento. Cualquier elemento HTML puede recibir este evento.