Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/08/2016, 13:07
ILuzbel
 
Fecha de Ingreso: septiembre-2011
Mensajes: 106
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: Menu desplegable (dropdown)

Cita:
Iniciado por IsaBelM Ver Mensaje
el problema te lo creas tu solo al usar el elemento <a> en un contexto en el que no tiene sentido. el evento deberías de asignarselo al elemento <li>. pero si aún así quieres mantenerlo, puedes usar el https://developer.mozilla.org/es/doc...ElementSibling
Bueno tal vez elegí el problema por ser mas complicado.
Ya he resuelto el problema, pero lo haré como dices para no escribir código de mas. Aquí esta la solución:

Código Javascript:
Ver original
  1. function dropdownNav(e) {
  2.     "use strict";
  3.     //bloqueamos el evento por defecto
  4.     e.preventDefault();
  5.     //definimos variables
  6.     var i, j, c, e, cName;
  7.     //Nombre de la clase del elemento que hay que ocultar
  8.     cName = "w3-dropdown-content";
  9.     //Obtenemos a los hijos del elemento padre
  10.     c = this.parentNode.childNodes;
  11.     //Seleccionamos elementos parecidos que hay que ocultar
  12.     e = document.getElementsByClassName(cName);
  13.     /*jslint plusplus: true */
  14.     for (i = 0; i < c.length; i++) {
  15.         //Seleccionamos el elemento que nos interesa
  16.         if (c[i].nodeName === "DIV") {
  17.             //Mostramos o ocultamos el elemento
  18.             if (c[i].className.indexOf("w3-show") == -1) {
  19.                 //Ocultamos todo
  20.                 for (j = 0; j < e.length; j++) {
  21.                     e[j].className = e[j].className.replace(" w3-show", "");
  22.                 }
  23.                 //Mostramos el elemento interesado
  24.                 c[i].className += " w3-show";
  25.             } else {
  26.                 //Ocultamos todo
  27.                 for (j = 0; j < e.length; j++) {
  28.                     e[j].className = e[j].className.replace(" w3-show", "");
  29.                 }
  30.             }
  31.         }
  32.     }
  33. }

Gracias

Saludos...

Última edición por ILuzbel; 09/08/2016 a las 13:27