Foros del Web » Programando para Internet » Javascript »

funcion Oncclick en dropdown

Estas en el tema de funcion Oncclick en dropdown en el foro de Javascript en Foros del Web. Hola haber si me pueden ayudar, estoy empezando a tocar javascript, pero no entiendo como hacer esta funcion. Basicamente tengo un menu que conforme voy ...
  #1 (permalink)  
Antiguo 08/05/2014, 10:50
 
Fecha de Ingreso: mayo-2014
Ubicación: Valencia
Mensajes: 3
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta funcion Oncclick en dropdown

Hola haber si me pueden ayudar, estoy empezando a tocar javascript, pero no entiendo como hacer esta funcion.

Basicamente tengo un menu que conforme voy pasando el mouse se me abren mas opciones, yo lo que quiero que esas opciones se abran haciendo click y se cierren de igual manera haciendo click.



Este es el codigo que tengo, va conectado a la base datos tambien, para segun que seleccion muestre una opcion u otra.

Código HTML:
<ul class="megamenu"><!-- Begin Mega Menu -->



        <li class="top_level"><span>Marcas</span><!-- Mega Menu Button / Container -->



            <ul id="test" class="megamenu_main main_opened"><!-- Nivel Marcas -->
			
                <?php
                if($marcas) {
                foreach ($marcas as $marca)
                {
                 $modelos = $db->get_results("SELECT
                 modelos.idModelo,
                 modelos.modelo
                 FROM
                 modelos
                 WHERE
                 modelos.idMarca = {$marca->idMarca}
                 ORDER BY
                 modelos.modelo ASC");
                ?>
	
                <li class="title dropdown_arrow relative_dropdown">

                    <a href="#"><?php echo $marca->marca; ?></a>

                    <ul id="test"><!-- Nivel Modelos -->

                        <?php
                        if($modelos) {
                        foreach ($modelos as $modelo)
                        {
                          $motores = $db->get_results("SELECT
                          motores.motor,
                          motores.idMotor
                          FROM
                          motores
                          WHERE
                          motores.idModelo = {$modelo->idModelo}
                          ORDER BY
                          motores.motor ASC");
                        ?> 
						
						<li class=" dropdown_arrow relative_dropdown">
						
						   <a href="#"><?php echo $modelo->modelo; ?></a>
						   
						   
						      <ul id="test"><!-- Nivel Motores -->
                                  <?php
                                  if($motores) {
                                  foreach ($motores as $motor)
                                  {
                                  ?> 
						<li>
						    <a href="piezas.php?id=<?php echo $motor->idMotor; ?>"><?php echo $motor->motor; ?></a>
						</li>
						<?php
                          } //end foreach motor
                          } //end if motores
                        ?>

                              </ul>



                        </li> 
						<?php
                         } //end foreach modelo
                         } //end if modelos
                        ?>


                    </ul><!-- End Second Drop Down Level -->

                </li>
				<?php
                  } //end foreach marca
                  } //end if marcas
                ?>

            </ul><!-- End First Drop Down Level -->

        </li><!-- End Mega Menu Button / Container -->

    </ul><!-- End Mega Menu --> 
Y este el javascript para que detecte el cuando hago click, que no me funciona, en si no se que he hecho mal, he puesto a los ul la id del script.

Código HTML:
<script>
		   function getEventTarget(e) {
           e = e || window.event;
           return e.target || e.srcElement; 
           }

           var ul = document.getElementById('test');
           ul.onclick = function(event) {
           var target = getEventTarget(event);
           alert(target.innerHTML);
           };
		</script> 
De ante mano quiero decir, que no quiero que me den el codigo hecho, quiero aprender a hacerlo yo mismo, me gustaria saber si voy bien encaminado o trato de hacer algo imposible o si necesito encaminarme hacia otra cosa.

Un saludo gracias.
  #2 (permalink)  
Antiguo 09/05/2014, 07:43
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: funcion Oncclick en dropdown

no te puedo dar una solución pero si un consejo... simplifica, quita que recupere de la base de datos quita que hayan mil opciones quita los múltiples niveles

pon solo un menú de dos opciones y trata de hacer que despliegue un submenú con una de ellas, y trata de hacerlo de forma que pueda reutilizarse esa misma función con el menú que va a abrir para que abra otro hijo si es que existe, y luego trata de hacer que abra un segundo nivel as ver si funciona, cuando lo tengas y funcione en la versión simple mete toda la paja restante.

Será mas fácil para tí y también mas fácil para nosotros si nos preguntas.
;)
  #3 (permalink)  
Antiguo 09/05/2014, 17:45
 
Fecha de Ingreso: mayo-2014
Mensajes: 7
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: funcion Oncclick en dropdown

Hola, fíjate que estás repitiendo ids por ahí, una id debe ser única en todo el documento, en caso contrario sólo te funcionará el primer elemento con la id al añadir un evento :P

Yo usaría una clase común y con document.getElementsByClassName que devuelve la lista añadiría los eventos en un for o algo, no se, prueba tu mismo :D

Suerte

Etiquetas: dropdown, funcion, php, select
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 10:56.