Cita:
Iniciado por caricatos Hola:
Sobre esta afirmación:
... no estoy nada de acuerdo...
Con una sola función:
<p onclick="contenido('Uno')" >...
Siendo las capas "Uno", "Dos" y "Tres": con la funcion contenido...
function contenido(cual) {
for (i in ["Uno", "Dos", "Tres"]
document.getElementById(i).style.display = (i == cual) ? "block":"none";
}
Saludos
@Caricatos, me quedé analizando tu código (buen detalle el del uso de in), y vi que no funciona, entre otras cosas porque le pasas el indice (i) y no el valor(id) del elemento.
Como sigue funciona correctamente
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> /*<![CDATA[*/
/* estilos */
p{
font-weight: bold;
cursor: pointer;
}
#Uno,#Dos,#Tres{
display: none;
}
/*]]>*/
<script type="text/javascript"> //<![CDATA[
function contenido(cual){
var capas = new Array("Uno", "Dos", "Tres");
var i;
for (i in capas){
if(capas[i] != cual){
document.getElementById(capas[i]).style.display = 'none';
}else{
document.getElementById(cual).style.display = 'block';
}
}
}
//]]>
<p onclick="contenido('Uno')" >uno
</p> <p onclick="contenido('Dos')" >dos
</p> <p onclick="contenido('Tres')" >tres
</p> <div id="Tres">Texto tres
</div>
Saludos