Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/03/2009, 05:39
Avatar de ceSharp
ceSharp
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años, 2 meses
Puntos: 66
Respuesta: cerrar tablas al abrir otras [importante]

Hola designlive,

Te paso una forma de hacerlo:

<script type="text/javascript">
function cambiarDisplay(id)
{
if(document.getElementById(id).style.display == "")
document.getElementById(id).style.display = "none";
else
{
for (i=0;i<4;i++)
{
if(id != 'row'+(i+1))
document.getElementById('row'+(i+1)).style.display = "none";
else
document.getElementById('row'+(i+1)).style.display = "";
}
}
}
</script>

</head>
<body>
<table align="center">
<tr onclick="cambiarDisplay('row1')">
<td width="55">
<div align="center">
<strong>Prueba1</strong></div>
</td>
</tr>
<tr id="row1" onclick="cambiarDisplay('row1')" style="display: none">
<td>
<div align="center">
texto Prueba 1
</div>
</td>
</tr>
</table>
<table align="center">
<tr onclick="cambiarDisplay('row2')">
<td width="55">
<div align="center">
<strong>Prueba2</strong></div>
</td>
</tr>
<tr id="row2" onclick="cambiarDisplay('row2')" style="display: none">
<td>
<div align="center">
texto Prueba 2
</div>
</td>
</tr>
</table>
<table align="center">
<tr onclick="cambiarDisplay('row3')">
<td width="55">
<div align="center">
<strong>Prueba3</strong></div>
</td>
</tr>
<tr id="row3" onclick="cambiarDisplay('row3')" style="display: none">
<td>
<div align="center">
texto Prueba 3
</div>
</td>
</tr>
</table>
<table align="center">
<tr onclick="cambiarDisplay('row4')">
<td width="55">
<div align="center">
<strong>Prueba4</strong></div>
</td>
</tr>
<tr id="row4" onclick="cambiarDisplay('row4')" style="display: none">
<td>
<div align="center">
texto Prueba 4
</div>
</td>
</tr>
</table>
</body>
</html>

he retocado los ids de los rows porque, a mi estilo, un for recorre todos los ids de las filas y comprueba si es el del que se ha dado click y, si no es, lo oculta. Si quisieras añadir mas filas deberías de modificar el for para que recorra tantas filas como tú quieras que lo haga. es decir, si tienes 10 filas, en lugar de for(i=0;i<4;i++) deberías de poner for(i=0;i<10;i++)

salu2