estoy haciendo un menu desplegable que funciona bien , pero luego me di cuenta que debia hacer desaparecer el menu desplegado cuando el usuario no esté sobre el menu, para que asi no se quede pegado todo el tiempo el menu desplegado (ojala se entienda lo que explico )
bueno entonces mi idea es utilizar setTimeout , para que cuando el usuario este en el mouseout del menu , este desareciera en un par de segundos.
Código PHP:
function inicia_timer(){
var borra = setTimeout("show()",2500);
}
//la funcion show
function show(id) {
var d = document.getElementById(id); // ul emergente
// aqui borramos todos los sub menues para que nose queden seleccionados por defecto
document.getElementById('sub_quienes').style.display='none';
document.getElementById('sub_operaciones').style.display='none';
document.getElementById('sub_productos').style.display='none';
document.getElementById('sub_calidad').style.display='none';
document.getElementById('sub_compromiso').style.display='none';
if (d) {d.style.display='block';
clearTimeout(borra);
document.getElementById('mensage').innerHTML='no se ejecuta el settimeout';
}
}
Código HTML:
<a href="#" id="btn1" onmouseover="javascript:show('sub_quienes','btn1');" onmouseout="javascript:inicia_timer();">quiene</a>
supongo que en este caso lo mejor seria utilizar settimeout no??
cuando genero varias llamadas a la funcion settimeout es posible que algunas se queden en la memoria y por eo creen conflictos..
mi problema tambien es que en la consola de errores de firefox aparece ...
ERROR : borra is not defined y me apunta a la linea de codigo
clearTimeout(borra); que esta dentro de la funcion show()
agradecería mucho que alguien me pueda ayudar
saludos cordales