Estoy creando un sitio donde coloca el mouse sobre una imagen y muestra un elemento (en este caso expandiendo su altura de 0 a 154 px).Mouseover y mouseleave disparador cada vez que muevo el mouse dentro del elemento dado
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseover(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseout(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"0"},200);
});
});
El contenido se expande cuando el ratón entra y se derrumba cuando las hojas de ratón, pero cada vez que el ratón se mueve dentro el elemento el contenido se expande y colapsa varias veces hasta que el ratón sale del elemento.
Nunca he tenido este problema antes, y he usado estas funciones en el pasado, así que no sé qué está pasando. ¿Algunas ideas?
Editar:
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseenter(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseleave(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"0"},200);
});
});
ahora estoy utilizando el código anterior y que sigue recibiendo el mismo problema exacto. He intentado todas las variaciones de la función .stop (falso, falso) (falso, verdadero) (verdadero, falso) (verdadero, verdadero). El problema ocurre de manera diferente con cada uno, pero aún ocurre.
ÚLTIMA EDICIÓN:
El problema fue que el contenido que se acercó el ratón estaba cubierto por un contenido diferente una vez que la función sea llamada. Por lo tanto, en cualquier punto dado, el mouse estaba ingresando y saliendo simultáneamente de la imagen. Resolvió el problema moviendo la llamada de función a un elemento diferente.
Esto sucede porque el '' burbuja mouseout' y eventos mouseover' hasta los padres, por lo que cuando se pasa sobre un elemento hijo del '.dropimage', su' 'burbuja mouseout' y eventos mouseover' hasta' .dropimage'. El uso de 'mouseleave' y' mouseenter' en su lugar solucionará el problema. Una vez que se resuelva ese problema, encontrará que necesita llamar '.stop (true, true)' before '.animate() 'para detener animaciones previas en caso de que pases el cursor sobre él varias veces rápidamente. –
He actualizado el código, pero el problema aún persiste. – bcloutier
tal vez su vincula el evento a la imagen y elemento? en lugar de solo la imagen? – Mouseroot