Tengo menús del tipo:
Código HTML:
Ver original
Al pulsar se ejecuta la función ehandler (que copié de otro lugar) para abrir los submenús.
Código Javascript:
Ver original
var time = 3000; var numofitems = <?php echo $menus; ?>; //menu constructor function menu(allitems,thisitem,startstate){ divname="subglobal"+thisitem; this.numberofmenuitems = allitems; this.thediv = document.getElementById(divname); this.thediv.style.visibility = startstate; } //menu methods function ehandler(event,theobj){ for (var i=1; i<= theobj.numberofmenuitems; i++){ var shutdiv =eval( "menuitem"+i+".thediv"); shutdiv.style.visibility="hidden"; } theobj.thediv.style.visibility="visible"; } function closesubnav(event){ if ((event.clientY <48)||(event.clientY > 107)){ for (var i=1; i<= numofitems; i++){ var shutdiv =eval('menuitem'+i+'.thediv'); shutdiv.style.visibility='hidden'; } } }
Al final de la página tengo este otro script para que los submenús inicialmente estén ocultos:
Código Javascript:
Ver original
<?php for ($i=1;$i<=$menus;$i++) { echo 'var menuitem'.$i.' = new menu('.$menus.','.$i.',"hidden");'; echo "\n";} ?>
Y construyo los submenús con php:
Código PHP:
Los submenús se construyen perfectamente. E inicialmente están ocultos. Pero al pulsar sobre el menú debería pasar de style="visibility: hidden;" a style="visibility: visible;" y eso no pasa.Ver original
for ($c=1;$c<=$menus;$c++) { $sbm='sbmenu'.$c; $sbmenu=$$sbm; $d=0; echo '<div id="subglobal'.$c.'" class="subglobalNav">'; echo "\n"; for ($u=1;$u<=$sbmenu;$u++) echo '<span class="subgloballink"><a id="sboton'.$c.$u.'" class="sglink" href=""><img src="subbotones/sb'.$c.'/'.$u.'.gif" alt="'.$link.'" title="'.$link.'" /></a></span>'; echo "\n"; } echo "</div>\n"; }
Lo curioso es que si para construir los submenús utilizo este código sí que funciona perfectamente:
Código PHP:
El problema es que al hacer los submenús con javascript no puedo rellenar las etiquetas alt y title con php. Por eso no me sirve este código.Ver original
<?php for ($c=1;$c<=$menus;$c++) { $sbm='sbmenu'.$c; $sbmenu=$$sbm; $d=0; ?> <script type="text/javascript"> var n=0 function hazSubFila<?php echo $c; ?>CSS() { var tx = '<div id="subglobal<?php echo $c; ?>" class="subglobalNav">' for (i=1;i<=<?php echo $sbmenu; ?>;i++) { tx += '<span class="subgloballink"><a id="sboton<?php echo $c; ?>'+i+'" class="sglink" href=""><img src="subbotones/sb<?php echo $c; ?>/'+i+'.gif" alt="" title="" /></a></span>' } tx += '</div>' document.writeln(tx) } hazSubFila<?php echo $c; ?>CSS() </script> <?php } ?>
Lo curioso del caso es que, en el último código que he puesto, al quitar la línea var n=0 los sumbenús dejan de mostrarse y se comportan exactamente como en el caso anterior.
Así que necesito una ayuda para poder terminar de hacer visibles estos submenús y poder rellenar las etiquetas alt y title.
Gracias por anticipado.