var lis = menuObj.getElementsByTagName('A'); for(var no=0;no<lis.length;no++){ if(!showSubOnMouseOver) lis[no].onmouseover = stopAutoHide; lis[no].onmouseout = initAutoHide; lis[no].onmousemove = stopAutoHide; }Crea un insieme di tutti gli elementi A del menuObj.
Per tutti gli elementi di questo insieme, se non è vero "showSubOnMouseOver", al mouseover sull'elemento esegui stopAutoHide; al mouseout dall'elemento esegui initAutoHide; al mousemove sull'elemento esegui stopAutoHide;
Non so quali siano queste funzioni. Che faccio, me le analizzo o vado avanti?
Provo ad andare avanti...
for(var no=0;no<mainMenuItemArray.length;no++){ var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0]; if(sub){ mainMenuItemArray[no].id = 'mainMenuItem' + (no+1); var div = document.createElement('DIV'); div.className='dhtmlgoodies_subMenu'; document.body.appendChild(div); div.appendChild(sub); if(slideDirection=='right'){ div.style.left = getLeftPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetWidth + xOffsetSubMenu + 'px'; } else{ div.style.left = getLeftPos(mainMenuItemArray[no]) + xOffsetSubMenu + 'px'; } div.style.top = getTopPos(mainMenuItemArray[no]) + 'px'; div.id = 'subMenuDiv' + (no+1); sub.id = 'submenuUl' + (no+1); sub.style.position = 'relative'; if(navigator.userAgent.indexOf('Opera')>=0){ submenuObjArray[no+1] = new Array(); submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no]; submenuObjArray[no+1]['divObj'] = div; submenuObjArray[no+1]['ulObj'] = sub; submenuObjArray[no+1]['width'] = sub.offsetWidth; submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,''); } sub.style.left = 1 - sub.offsetWidth + 'px'; if(document.all) div.style.width = '1px'; if(navigator.userAgent.indexOf('Opera')<0){ submenuObjArray[no+1] = new Array(); submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no]; submenuObjArray[no+1]['divObj'] = div; submenuObjArray[no+1]['ulObj'] = sub; submenuObjArray[no+1]['width'] = sub.offsetWidth; submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,''); if(fixedSubMenuWidth) submenuObjArray[no+1]['width'] = fixedSubMenuWidth; } if(!document.all) div.style.width = '1px'; } }Questa è colossale: la devo spezzettare un po' altrimenti mi impiccio...
Esegue qualcosa per tutti i mainMenuItem, che erano stati messi tutti nell'array mainMenuItemArray.
Vediamo cosa esegue...
var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];chiama sub il primo elemento UL contenuto in un mainMenuItem.
Cioè questo:
<li><a href="#">Siti</a>
<ul>
<li><a href="#">Grafica</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">Javascript</a></li>
<li><a href="#">Web Design</a></li>
</ul>
</li>
Quindi se esiste questo sub...
mainMenuItemArray[no].id = 'mainMenuItem' + (no+1); var div = document.createElement('DIV'); div.className='dhtmlgoodies_subMenu'; document.body.appendChild(div); div.appendChild(sub);ridenomina il corrispettivo mainMenuItem dell'Array in "mainMenuItem..." + il suo numero progressivo nell'Array; crea un nuovo elemento DIV chiamandolo div; attribuisce a questo elemento la classe "dhtmlgoodies_subMenu"; appende al documento questo div;
Mi sfugge il senso globale di tutte queste cose...
Ecco: il senso di questa è che per ogni mainMenuItem si va a vedere se contengono un sottoelenco: nel caso in cui lo contengano si ridenomina il corrispettivo mainMenuItem e si crea un DIV che viene aggiunto al documento.
Sì, questa ha effettivamente senso!
Ecco: questa analizza se ogni voce del menu principale ha o no dei sottomenu, nel qual caso prepara i sottomenu creando i DIV corrispondenti! Geniale, sì!
Nessun commento:
Posta un commento