Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/01/2009, 11:23
mitshu
 
Fecha de Ingreso: enero-2009
Mensajes: 14
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Mostar - Ocultar DIV - Problema con OnMouseOut.

¡¡SOLUCIONADO!!

Después de horas y horas investigando, ¡¡¡el menú ya tiene la funcionalidad deseada!!!

He empleado el concepto que me dió posman, el del retardo. Sólo que, en vez de crear la variable "tempo" en la propia llamada a la función, la creo de forma global en la hoja de código .js.

Además, he creado otra función, "oculta_retarda". Esta nueva función llama a la función "oculta()" (la normal) pasados los milisegundos que ponga en el setTimeout y a "oculta_retarda" la llamo sólo cuando salgo del TD.
Cuando salgo del DIV (submenu) llamo sencillamente a "oculta()" ya que no quiero que se vea más.

Este es el código resultante del TD del menú principal:
Código:
<td onmouseover="mostrar_nacimiento();" onmouseout="ocultar_retarda();"><a href="#">&bull; NACIMIENTO</a></td>
Este es el código del DIV del SubMenú:
Código:
<div id="apDiv1" onmouseover="mostrar_nacimiento();" onmouseout="ocultar_nacimiento();">
Y este, el código JavaScript asociado:
Código:
	var tempo=0;
	
	function mostrar_nacimiento()
		{
		var subMenu = document.getElementById('apDiv1');
		subMenu.style.visibility = 'visible';
		clearTimeout(tempo);
		}

	function ocultar_nacimiento()
		{
		var subMenu = document.getElementById('apDiv1');
		subMenu.style.visibility = 'hidden';
		}
		
	function ocultar_retarda()
		{
		tempo=setTimeout("ocultar_nacimiento();",1);		
		}
¡GRACIAS A TODOS! en especial a Dalvenjha y posman.