getElementById y Firefox

pnoguera
17 de Agosto del 2005
Hola alguien me puede decir porque este código funciona bien en IE y no en Firefox

<script>
function Submenu(pMenu){
var i = 1;
while(document.getElementById(pMenu + i)){
if(document.getElementById(pMenu).getAttribute("estado") == "Colapsado"){
document.getElementById(pMenu + i).style.setAttribute("display","block");
}
else{
document.getElementById(pMenu + i).style.setAttribute("display","none");
}
i++;
}
switch(document.getElementById(pMenu).getAttribute("estado")){
case "Colapsado":
document.getElementById(pMenu + "Estado").src = "imagenes/menos.gif";
document.getElementById(pMenu).setAttribute("estado","Expandido");
break;
case "Expandido":
document.getElementById(pMenu + "Estado").src = "imagenes/mas.gif";
document.getElementById(pMenu).setAttribute("estado","Colapsado");
break;
}
}
</script>

<div id="n2" class="n1off" nowrap onMouseOver="this.className='n1on';"
onMouseOut="this.className='n1off';"
onClick="Submenu('n2');"
estado="Colapsado">
<img id="n2Estado" src="imagenes/mas.gif" class="EstadoNodo">Opcion 2
</div>

<div id="n21" class="n2off" nowrap
style="display:none"
onMouseOver="this.className='n2on';"
onMouseOut="this.className='n2off';" >
<img id="n21Estado" src="imagenes/sinhijos.gif" class="EstadoNodo">Opcion 21
</div>

Gracias

scriptman
17 de Agosto del 2005
Ese codigo esta mal hecho... no lo pude ver ni en IE...
Si tubieras una pagina web con el ejemplo funcionando (con todo e imagenes, obvio) te podria ayudar.

A primera vista parece un efecto rollover... y te comento que actualmente ya no se programa asi, con tanto codigo de mas, sino que se hacen soluciones en base a CSS.

Saludos, hexclecticomicron.
.::Apoya al software libre::.