Foros del Web » Programando para Internet » Javascript »

onMouseOut ¡Me vuelve loco!

Estas en el tema de onMouseOut ¡Me vuelve loco! en el foro de Javascript en Foros del Web. ¡Buenas! Mi duda de novato es la siguiente: Ya hace bastante que vengo probando en JavaScript que, al crear ciertos menús que deben aparecer y ...
  #1 (permalink)  
Antiguo 02/09/2009, 19:02
Avatar de animalson  
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 0
Información onMouseOut ¡Me vuelve loco!

¡Buenas!

Mi duda de novato es la siguiente:

Ya hace bastante que vengo probando en JavaScript que, al crear ciertos menús que deben aparecer y desaparecer, quiero ocultarlos al quitar el cursor del ratón de encima.

Mi problema radica en que como he aprendido (para mi disgusto) que el evento onMouseOut no sólo se activa al "salir" del objeto actual sino también al pasar por encima de otro objeto que este primero pueda contener dentro.

Entonces: cuando creo ciertas opciones dentro de un DIV que funciona como el menú contenedor, resulta que quiero que el DIV desaparezca al quitar el mouse de encima de el mismo DIV y no al pasar por encima de las opciones que contiene en su interior (ya sea una tabla o simples vínculos).

Espero no haberme hecho mucho lío con esto, pero seguro que ustedes entenderán de qué estoy hablando. Y si no, lo aclararé mejor. Por el momento no se me ocurre otra manera de hacer que ese DIV se oculte al quitar el mouse de encima que no sea con el evento onMouseOut.

Muchas gracias por su ayuda, son una hermosa comunidad de gente que busca ayudar, y eso no tiene precio.

Saludos, Jorge Luis.
  #2 (permalink)  
Antiguo 02/09/2009, 19:20
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: onMouseOut ¡Me vuelve loco!

se de lo que estas hablando porque recuerdo haber tenido un problema similar pero ya se me olvido como era que sucedia. creo que era algo relacionado a donde se define el evento. mira el siguiente cutre ejemplo, intenta pasar el raton por el <span> y veras que aun se muestra.
Código:
<style>
div{
border:1px solid #99C;
background:#EEE;
padding:.5em;
font-family:"trebuchet ms", sans-serif;
}
span{
background:#FFC;
}
</style><div onmouseout="this.firstChild.style.display = 'none';" onmouseover="this.firstChild.style.display = '';"><span style="display:none;">span</span> div</div>
aqui otro ejemplo usando la misma base del anterior, pero esta vez agregando un elemento adicional dentro del <span>.
Código:
</style><div onmouseout="this.firstChild.style.display = 'none';" onmouseover="this.firstChild.style.display = '';"><span style="display:none;" 
onmouseover="this.lastChild.style.display='';" onmouseout="this.lastChild.style.display='none';">span <span style="display:none;">&gt;</span></span> div</div>
muestranos un enlace si tienes tus documentos en linea, sino muestranos el codigo implicado.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 02/09/2009 a las 20:01 Razón: agregando ejemplo
  #3 (permalink)  
Antiguo 02/09/2009, 20:20
Avatar de animalson  
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Respuesta: onMouseOut ¡Me vuelve loco!

¡ Hola zerokilled ! Ante todo gracias por tu respuesta.

Te comento que lo que yo busco es un poco diferente. Aquí te paso el ejemplo:

Código:
<style>
menu{
border:1px solid #99C;
width:200px;
height:200px;
background:#EEE;
position:absolute;
display:none;
}
span{
background:#FFC;
}
</style>

<body>
	<a onclick="document.getElementById('menu').style.display = 'block';">OPCION 1</a>
	<div id='menu' onmouseout="document.getElementById('menu').style.display = 'none';">
		<br />
		<span>MENU 1</span><br />
		<span>MENU 2</span>
	</div>
</body>
Verás que al pasar el cursor sobre las etiquetas que contiene, se dispara el evento.

¿Habrá solución?

Saludos.
  #4 (permalink)  
Antiguo 02/09/2009, 20:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: onMouseOut ¡Me vuelve loco!

agregarle el evento onmouseover al <div> para que se mantenga mostrando.
Código:
	<div id='menu' onmouseout="this.style.display = 'none';" onmouseover="this.style.display = '';">
me da vergüenza, no se explicarte el por que sin hacerlo complejo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 02/09/2009, 21:31
Avatar de animalson  
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: onMouseOut ¡Me vuelve loco!

Cita:
Iniciado por zerokilled Ver Mensaje
agregarle el evento onmouseover al <div> para que se mantenga mostrando.
Código:
	<div id='menu' onmouseout="this.style.display = 'none';" onmouseover="this.style.display = '';">
me da vergüenza, no se explicarte el por que sin hacerlo complejo.
¡EUREKA! Perfecto amigo. Ese era el secreto.

Muchas gracias por la ayuda, de verdad.

Un abrazo y hasta pronto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.