Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/05/2011, 10:15
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Listeners y Referencias

Tipo gracias Hasta ahora queda así, pero faltan unos golpes que no he recibido Claro otra forma de hacerlo es así como indicas de lo de asignar la clase, pero mientras, estoy experimentando
Código HTML:
Ver original
  1. <div id="menu">
  2.     <ul class="navigation">
  3.         <li style="border: 1px solid #eee;">
  4.             <a href="#">Foo</a>
  5.             <ul style="display: none;">
  6.                 <li style="border: 1px solid #eee;"><a href="#">fooFoo</a></li>
  7.                 <li style="border: 1px solid #eee;"><a href="#">fooBar</a></li>
  8.                 <li style="border: 1px solid #eee;"><a href="#">fooBaz</a></li>
  9.             </ul>
  10.         </li>
  11.         <li style="border: 1px solid #eee;">
  12.             <a href="#">Bar</a>
  13.             <ul style="display: none;">
  14.                 <li style="border: 1px solid #eee;"><a href="#">barFoo</a></li>
  15.                 <li style="border: 1px solid #eee;"><a href="#">barBar</a></li>
  16.                 <li style="border: 1px solid #eee;"><a href="#">barBaz</a></li>
  17.             </ul>
  18.         </li>
  19.         <li style="border: 1px solid #eee;">
  20.             <a href="#">Baz</a>
  21.             <ul style="display: none;">
  22.                 <li style="border: 1px solid #eee;"><a href="#">bazFoo</a></li>
  23.                 <li style="border: 1px solid #eee;"><a href="#">bazBar</a></li>
  24.                 <li style="border: 1px solid #eee;"><a href="#">bazBaz</a></li>
  25.             </ul>
  26.         </li>
  27.         <li style="border: 1px solid #eee;">
  28.             <a href="#">Candy</a>
  29.             <ul style="display: none;">
  30.                 <li style="border: 1px solid #eee;"><a href="#">candyFoo</a></li>
  31.                 <li style="border: 1px solid #eee;"><a href="#">candyBar</a></li>
  32.                 <li style="border: 1px solid #eee;"><a href="#">candyBaz</a></li>
  33.             </ul>
  34.         </li>
  35.         <li style="border: 1px solid #eee;"><a href="#">Fruits</a></li>
  36.         <li style="border: 1px solid #eee;"><a href="#">Vegetable</a></li>
  37.         <li style="border: 1px solid #eee;"><a href="#">twix</a></li>
  38.         <li style="border: 1px solid #eee;"><a href="#">apple</a></li>
  39.         <li style="border: 1px solid #eee;"><a href="#">fiber</a></li>
  40.         <li style="border: 1px solid #eee;"><a href="#">ice cream</a></li>
  41.         <li style="border: 1px solid #eee;"><a href="#">pizza</a></li>
  42.     </ul>
  43. </div>
  44. <script type="text/javascript">
  45. function addListener(element, type, expression, bubbling)
  46. {
  47.     bubbling = bubbling || false;
  48.  
  49.     if(window.addEventListener) { // Standard
  50.         element.addEventListener(type, expression, bubbling);
  51.         return true;
  52.     } else if(window.attachEvent) { // IE
  53.         element.attachEvent('on' + type, expression);
  54.         return true;
  55.     } else return false;
  56. }
  57.  
  58. elem = document.getElementById('menu').firstChild;
  59. while(true){
  60.     switch(elem.nodeName){
  61.         case 'UL':
  62.             elem = elem.firstChild;
  63.             break;
  64.         case 'LI':
  65.             addListener(elem, 'click', function(e){
  66.                 childElem = this.firstChild;
  67.  
  68.                 var bool = true;
  69.  
  70.                 while(true){
  71.                     if(childElem.nodeName == 'UL'){
  72.                         var event = e || window.event;
  73.                         if(!event.target){ event.target = event.srcElement; }
  74.                         if(this != event.target){
  75.                             bool = false;
  76.                         }
  77.                         break;
  78.                     }
  79.                     childElem = childElem.nextSibling;
  80.                     if(childElem == null){ break; }
  81.                 }
  82.                 if(bool && childElem != null){
  83.                     if(childElem.style.display == 'block'){
  84.                         childElem.style.display = 'none';
  85.                     }else{
  86.                         childElem.style.display = 'block';
  87.                     }
  88.                 }
  89.             });
  90.             break;
  91.     }
  92.     elem = elem.nextSibling;
  93.     if(elem == null){ break; }
  94. }

Ahora me intriga eso de "esos breaks no estan en el Zend Coding Standard", ¿cuá sería el standard? Porque me dejaste
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos