Tengo un div con una identificación de "botón". Estoy intentando cambiar su fondo para que se vuelva azul cuando coloque el cursor (sin usar el selector de desplazamiento CSS).Javascript addEventListener: ¿usar para crear un efecto de mouseover?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
Esto, sin embargo, sólo se establece el color del elemento a azul cuando se ciernen, pero no se reinicia a blanco después de mover el ratón de distancia. ¿Cómo puedo corregir esto? (por cierto, mouseenter y mouseleave no funcionan con esto aparentemente).
Ahh ... ¡genial! Tengo una imagen dentro de mi div y lo considera como "fuera", ¿hay alguna forma de enmascarar eso para que todavía piense que está dentro de la caja? – antonpug
Sí, los eventos mouseover y mouseout también captan todos los eventos de los niños (y aparecen). En sus funciones, tendrá que comparar la propiedad relacionada Destino (W3C) o Destino/Destino (IE) en el parámetro de evento. Eche un vistazo a este enlace para obtener más información: http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
Es mucho trabajo capturar solo el contenedor primario y no manejar nada desde elementos secundarios. A menos que tenga alguna razón específica para no hacerlo, podría simplificar su código utilizando la función 'hover()' de jQuery. – AndrewR