Ver Mensaje Individual
  #21 (permalink)  
Antiguo 15/02/2010, 17:51
Avatar de genuine_carlosV2
genuine_carlosV2
 
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Sistemas de Tabs con el contenido en la misma pagina

Buenas,

Fíjate en este código, sólo tiene una linea de diferencia:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3. * * function cambiarPestana( pestana ) {
  4. * * * * //Ocultar TODAS las pestañas
  5. * * * * document.getElementById( 'pestana1' ).style.display = 'none';
  6. * * * * document.getElementById( 'pestana2' ).style.display = 'none';
  7. * * * * document.getElementById( 'pestana3' ).style.display = 'none';
  8. * * * * document.getElementById( 'pestana4' ).style.display = 'none';
  9. * * * *
  10. * * * * //Mostrar la pestaña que nos piden
  11. * * * * document.getElementById( 'pestana' + pestana ).style.display = 'block';
  12. * * }
  13.    cambiarPestana( 1 );  //Linea nueva!!! En vez de 1, puedes poner la pestaña que quieras que esté por defecto
  14. -->
  15. <a href="javascript:cambiarPestana( 1 )">Mostrar pestaña 1</a>
  16. <a href="javascript:cambiarPestana( 2 )">Mostrar pestaña 2</a>
  17. <a href="javascript:cambiarPestana( 3 )">Mostrar pestaña 3</a>
  18. <a href="javascript:cambiarPestana( 4 )">Mostrar pestaña 4</a>
  19. <div id="pestana1" style="display: none">Cosas de la pestaña 1</div>
  20. <div id="pestana2" style="display: none">Cosas de la pestaña 2</div>
  21. <div id="pestana3" style="display: none">Cosas de la pestaña 3</div>
  22. <div id="pestana4" style="display: none">Cosas de la pestaña 4</div>

También, si quieres, puedes crear una quinta pestaña con el contenido por defecto de modo que solo aparezca una vez:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3. * * function cambiarPestana( pestana ) {
  4. * * * * //Ocultar TODAS las pestañas
  5. * * * * for( i = 0; i <= 4; i++ ) document.getElementById( 'pestana' + i ).style.display = 'none';
  6. * * * *
  7. * * * * //Mostrar la pestaña que nos piden
  8. * * * * document.getElementById( 'pestana' + pestana ).style.display = 'block';
  9. * * }
  10. -->
  11. <a href="javascript:cambiarPestana( 1 )">Mostrar pestaña 1</a>
  12. <a href="javascript:cambiarPestana( 2 )">Mostrar pestaña 2</a>
  13. <a href="javascript:cambiarPestana( 3 )">Mostrar pestaña 3</a>
  14. <a href="javascript:cambiarPestana( 4 )">Mostrar pestaña 4</a>
  15. <div id="pestana0" style="display: block">Cosas que sólo verás una vez!!</div>
  16. <div id="pestana1" style="display: none">Cosas de la pestaña 1</div>
  17. <div id="pestana2" style="display: none">Cosas de la pestaña 2</div>
  18. <div id="pestana3" style="display: none">Cosas de la pestaña 3</div>
  19. <div id="pestana4" style="display: none">Cosas de la pestaña 4</div>

Si te fijas, en este código le he añadido también un pequeño bucle para que te ayude a controlar la cantidad de pestañas que tienes. De este modo, cambias el 4 por un 7 y listo.
Fíjate también que no hace falta que añadas una pestaña para tener tu contenido por defecto. También puede ser una pestaña que ya tengas cambiando su 'block' por 'none'.

P.D.: Con este código también podrías aumentar la usabilidad haciendo algo como lo que decía caricatos. Para ello, tan solo tienes que iniciar todos los DIVs con 'display: block' (en vez de 'display: none') y, añadir la linea 'cambiarPestana( 0 );' (o la pestaña que quieras tener por defecto) en la misma posición que en el código anterior. Esto hará que si no se tiene el JS activo, veas todas las pestañas y, si lo tienes activo, la función 'cambiarPestana', te esconderá todas las pestañas menos la que no quieres ver.

Saludos y suerte!
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM