Patrones jQuery: toggleTarget

Visita este artí­culo en http://www.estadobeta.com/2008/09/22/patrones-jquery/

Por Ismael en artículos, javascript, jquery

Hace un tiempo recopilo funciones y utilidades que, usando jQuery, me encuentro usando una y otra vez en distintos proyectos. Una de las ventajas de jQuery es la abundancia de plugins disponibles, pero normalmente éstos son más avanzados de lo que necesito y en algunos casos prefiero escribir estos “microplugines” que soluciones casos muy concretos y al mismo tiempo comunes.

El caso

Quieres uno o más links que despliegue un elemento escondido en la página, o lo esconda si el elemento está visible (por ejemplo un link “ver más”).
El efecto debe ser accesible: sin javascript, el browser debe simplemente mostrar el elemento normalmente y el link debe ser un “ancla” a éste. El caso es similar a un ejemplo publicado tiempo atrás para MooTools.

Code (javascript)
  1.  
  2. <a href="#contenido" class="js_collapse">Mostrar o esconder</a>
  3.  
  4. <div id="contenido">
  5. Mostrar o esconder este contenido al presionar el ancla de arriba.
  6. </div>
  7.  

El código

Code (javascript)
  1.  
  2. (function($){
  3.   $.fn.toggleTarget = function(){
  4.     $(this).click(function(){
  5.       var target = $($(this).attr(‘href’));
  6.       target.toggle(‘fast’);
  7.       return false;
  8.     });
  9.   }
  10. })(jQuery);
  11.  

Uso

Code (javascript)
  1.  
  2. $(function(){
  3.   $(‘a.js_collapse’).toggleTarget();
  4. });
  5.  

La mayoría de estas utilidades las tengo bajo control de versiones en mi Github. Sientanse libres de hacer un fork y contribuír.

Link: jQuery patterns en Gihub.

2 comentarios para “Patrones jQuery: toggleTarget”

  1. GravatarxHumanHealth Dice:

    Thank you for this nice post…

  2. GravatarRodrigo Dice:

    Porque no hacer:

    $(‘a.js_collapse’).click(function(){
    var target = $($(this).attr(‘href’));
    target.toggle(‘fast’);
    return false;
    });


    de frenton?

Deja un comentario

XHTML: puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>