Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2007, 10:26
michelson
 
Fecha de Ingreso: febrero-2006
Mensajes: 208
Antigüedad: 18 años, 3 meses
Puntos: 0
problema con setTimeout() y clearTimeout()

Hola , como estan, bueno yo con algunos problemas javascript.

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 
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';
}

bueno y en los botones hago la siguiente llamada:

Código HTML:
<a href="#" id="btn1" onmouseover="javascript:show('sub_quienes','btn1');"  onmouseout="javascript:inicia_timer();">quiene</a> 
y funciona bien, pero ese boton luego esta dentro de un ul que tiene unos li a , con links, entonces la idea seria que en cada link de esos 'ul li a ' cuando se este en el estado hover no se ejecute el settimeout.

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
__________________
michelson
-----------------
crossing snow mountains with a yamaha bike