[JS] Mostrar y ocultar un textito tipo spoiler (Toggle ON/OFF)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Lux
    ルクス
    • 24-04-2003
    • 24465

    #1

    [JS] Mostrar y ocultar un textito tipo spoiler (Toggle ON/OFF)

    Bueg, a alguien se le ocurre una forma más simple para hacer esto?

    Básicamente tengo que hacer algo similar a un control de spoiler que togglee sí o no muestra determinado texto.

    Es como se aplicaría en un post cualquiera.
    Son varios párrafos a ocultar diseminados en muchas líneas de texto.

    Cuanto más liviano y sencillo, mejor.


    Hasta ahora, venía jugando con con cambiarle el css al elemento (atributo display) y esto funciona:

    función
    Código:
    <script type="text/Javascript"> 
    
    function togglecomments (postid) { 
    
       var whichpost = document.getElementById(postid); 
       
       if (whichpost.className=="commentshown") { 
          whichpost.className="commenthidden"; 
       } 
       else { 
          whichpost.className="commentshown"; 
       } 
    } 
    </script>
    El commentshown commenthidden son casualmente 2 estilos css que los tengo metidos ahí:
    .commenthidden {display:none} (este oculta)
    .commentshown {display:block} (este muestra)

    Luego, para llamarlo, uso esto:
    Código:
    <a aiotitle="click to expand" href="javascript:togglecomments('spoil')">Click to expand</a>
    <div class="commenthidden" id="spoil">este es el texto del spoiler</div>
    El cartelito que dice SPOILER en vez de ser un botón, es un link, y está bien porque resulta más cómodo para leerlo todo de corrido.

    El div se llama "spoil", entonces, al clickear el link llama al js anterior para cambiar el css.


    Esto funciona GENIALLL en Blogger y no es muy molesto. la precaución que hay que tener es que los ids (en el ejemplo, "spoil") tienen que ser siempre distintos para no romper todo. LO QUE ES UNA CAGADA si tenés una sola página con infinito texto.


    Dps busco en el foro a ver si hay algo pero ni ideadsd y soy un 0 en estas cosas
    Editado por última vez por Lux; 05-05-2009, 03:05 PM.
  • Lux
    ルクス
    • 24-04-2003
    • 24465

    #2
    Nota adicional: si la función en sí es más compleja pero las llamadas son más sencillas, no hay problema. Lo que me rompe un poco las pelotas es tener que copypastear los links.

    Comentario

    • MoaLaiSkirulais
      ^^(V)^^
      • 08-07-2003
      • 23268

      #3
      con jQuery se simplificaria mucho el code

      chekea este videocast q trata de algo """similar"""

      Comentario

      • Lux
        ルクス
        • 24-04-2003
        • 24465

        #4
        Hmm, sí, vi y resulta bastante más sencillo. El problema es que es el Readme de un ebook y no quiero meter el .js, sino que queden los 2 archivitusdsd...

        Comentario

        Trabajando...