Buenas.
Tengo menús del tipo:
Código HTML:
Ver original<div class="botoneslink"> <div onclick="ehandler(event,menuitem1);" class="boton"> <a class="glink" id="boton1"> <img width="66" height="66" src="web_archives/img/botones/botones/01.png">
Al pulsar se ejecuta la función ehandler (que copié de otro lugar) para abrir los submenús.
Código Javascript
:
Ver originalvar 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:
Ver originalfor ($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++)
{ $n_link=$c.$d.$u; urls_amigables
($n_link); list ($link, $path) = urls_amigables
($n_link); 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";
}
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.
Lo curioso es que si para construir los submenús utilizo este código sí que funciona perfectamente:
Código PHP:
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 } ?>
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.
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.