Repaso de las funciones de jQuery mouseenter() y mouseleave() para detectar la posición del ratón sobre los diferentes elementos del DOM. Muy similar a la función hover().
Otras funciones de jQuery que detectan eventos del ratón son click(), dblclick(), blur() y focus().
Quizás podamos usar estas funciones sin ningún problema y que nos funcionen como es debido. Pero no está de menos saber las diferencias entre ellas:
Con esta función detectamos el posicionamiento del ratón sobre un elemento del DOM, sin incluir sus nodos hijos, si se entra en un nodo hijo la función no se ejecuta.
Veamos su sintaxis extraída de su web oficial:
$(selector).mouseenter(funcion)
Os explico la sintaxis:
Función opuesta a la anterior, detecta cuando el ratón deja de estar sobre el elemento seleccionado y sale de él, no se ejecuta cuando el ratón abandona un nodo hijo del selemento.
Veamos su sintaxis extraída de su web oficial:
$(selector).mouseleave(funcion)
Os explico la sintaxis:
Vamos a ver un sencillo ejemplo para ver ambas funciones en acción:
$(document).ready(function(){ $("#prueba").mouseenter(function(){ alert("El ratón está sobre el div negro"); }); $("#prueba").mouseleave(function(){ alert("El ratón ya no está sobre el div negro"); }); });
Os explico el ejemplo:
El código HTML del párrafo es el siguiente:
<p> <div id="prueba" style="height:100px; background-color:#000000; padding:30px 30px 30px 30px;"> <span style="height:30px; background-color:#dddddd; color:#000000; padding:5px 5px 5px 5px;">Prueba a mover el ratón sobre este texto</span> </div> </p>
Para la detección, control o selección de elementos con jQuery os recomiendo leer este post: