Patrones jQuery: toggleTarget

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

Por Ismael en artículos, javascript, jquery
Mestinon For Sale Septilin No Prescription Buy Abana No Prescription Buy Online Avodart Buy Himcolin Online Hytrin For Sale Levitra No Prescription Buy Proscar No Prescription Buy Online Lopid Buy Zebeta Online Azulfidine For Sale Karela No Prescription Buy Clomid No Prescription Buy Online Loxitane Buy Actoplus Met Online Capoten For Sale Celebrex No Prescription Buy Retin-A No Prescription Buy Online Prednisone Buy Levitra Online Prednisone For Sale Tricor No Prescription Buy Tramadol No Prescription Buy Online Lamisil Buy Inderal Online

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.

3 comentarios para “Patrones jQuery: toggleTarget”

  1. GravatarRodrigo Dice:

    Porque no hacer:

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


    de frenton?

  2. GravatarJamd Dice:

    Rodrigo, yo creo que no es lo mas óptimo, ya que si implemento tener esa función en varias paginas distintas.

    imaginate que necesito cambiar la velocidad y quiero que todas las paginas que hice tengas la misma velocidad por ejemplo a mi jefe no le gusto que apareciera tan rapido y necesito cambiar:
    target.toggle(‘fast’); a
    target.toggle(‘slow’);
    ¿Que pasaria con tu codigo?
    Tendria que cambiar cada js donde ingrese directamente la funcion.
    En cambio asi como lo hizo ismael solo cambias la funcion principal.

    Además reutilizamos código, y ahorramos un par de bytes.
    No crees?

    Una humilde opinion

  3. GravatarSuggiero Dice:

    Muy bueno,
    creo q tiene razón rodrigo,

    saludos

Deja un comentario

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