Foros del Web » Programando para Internet » Javascript »

Problema básico sobre onclick event

Estas en el tema de Problema básico sobre onclick event en el foro de Javascript en Foros del Web. Hola soy nuevo en esto de javascript y tengo unos problemas creando un menu desplegable. La cuestion es que al apretar sobre el boton especifico ...
  #1 (permalink)  
Antiguo 31/08/2011, 14:04
Avatar de geclos  
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona, Spain, Spain
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Problema básico sobre onclick event

Hola soy nuevo en esto de javascript y tengo unos problemas creando un menu desplegable.

La cuestion es que al apretar sobre el boton especifico para que se desplegue el menu la primera vez todo funciona muy bien, pero la segunda vez que apreto sobre el mismo boton se me carga el link del boton en vez del script.

Les pego el HTML y el script en concreto:

Código:
 <nav>
                    <a href="" id="popupmenulink">Nuestro trabajo</a>
		    		<a href="localhost">Sobre Nosotros</a>
		    		<a href="localhost">Blog</a></li>
		    		<a href="localhost">Contacto</a>
            </nav>
        </header>

        	<ul id="popupmenu">
        		<li>Proyectos</li>
        		<li>Servicios</li>
        	</ul>
Código:
window.onload = initAll;


function initAll() {

	var thismenu = document.getElementById('popupmenulink');
	thismenu.onclick = toggleMenu;
}

	function toggleMenu() {

	var thisMenu = document.getElementById('popupmenu').style;
	if (thisMenu.display == "block") {
		thismenu.display = "none";
	}
	else {
		thisMenu.display ="block";
	}
	return false;
}
gracias por la ayuda.
  #2 (permalink)  
Antiguo 31/08/2011, 14:24
Avatar de laratik  
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 13 años, 10 meses
Puntos: 63
Respuesta: Problema básico sobre onclick event

Es un tema bastante simple, fíjate en la siguiente linea de código:

Cita:
Iniciado por geclos Ver Mensaje
Código:
if (thisMenu.display == "block") {
		thismenu.display = "none";
	}
	else {
		thisMenu.display ="block";
	}
}
Ahora recuerda que Javascript es case sensitive y thisMenu no es lo mismo que thismenu, así que thismenu no ha sido declarado, error que el interprete encuentra y detiene el script. Por lo tanto el return false nunca se ejecuta y pasa a la pagina.

Código Javascript:
Ver original
  1. if (thisMenu.display == "block") {
  2.         thisMenu.display = "none";
  3.     }
  4.     else {
  5.         thisMenu.display ="block";
  6.     }
  7. }

Sencillo cierto ... espero haberte sido de ayuda.
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.
  #3 (permalink)  
Antiguo 31/08/2011, 14:31
Avatar de geclos  
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona, Spain, Spain
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema básico sobre onclick event

Tema solucionado pues.

Muchas gracias!

Etiquetas: event, html, onclick, botones
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 11:41.