jQuery 1.5: Novedades, Descargas, CDNs y uso en WordPress

Tuesday 1 de February de 2011, 10:42 am 3 Comments

jQuery LogoComo relojes perfectamente sincronizados, los chicos de jQuery cumplen lo prometido, ya que el día de ayer liberaron su nueva versión estable: jQuery 1.5.

Para descargar jQuery 1.5, usen los siguientes enlaces directos:

Ya que los enlaces previos pertenecen al jQuery CDN, pueden usarlos directamente en sus proyectos. Obviamente, el recomendado en la edición minificada:

http://code.jquery.com/jquery-1.5.min.js

También podemos usar los CDN de Google y Microsoft:

Microsoft CDN:

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.min.js

Google CDN:

https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js

¿Cómo usar jQuery 1.5 en WordPress?

Como somos desarrolladores inquietos siempre nos gana la “versionitis”, y una de las primeras cosas que quisiéramos hacer es utilizar jQuery 1.5 en algún theme o plugin que estemos desarrollando para WordPress. Lo único que debemos hacer es agregar el código siguiente al archivo function.php del theme correspondiente:

add_filter('script_loader_src', 'my_script_loader_src', 10, 2);
function my_script_loader_src($src, $handle) {
	if ($handle == "jquery")
		return "http://code.jquery.com/jquery-1.5.min.js";
	return $src;
}

Ahora cada llamada a wp_enqueue_script cargará jQuery 1.5 en vez del que viene por defecto en WordPress. Obviamente puedes cambiar el enlace y utilizar el CDN de tu preferencia.

¿Qué novedades hay en jQuery 1.5?

¡Cierto! Aún ni he mencionado las novedades de jQuery 1.5. Aquí las principales:

  • El Módulo Ajax ha sido totalmente reescrito, lo cual corrige muchos defectos en el viejo sistema e igualmente provee un mayor nivel de consistencia en el API.

    Ahora cuando se hace alguna llamada a jQuery.ajax, jQuery.get o jQuery.post, se devuelve un objeto jXHR, el cual es consistente con el objeto XMLHttpRequest para todas las plataformas. Esto permite tareas antes imposibles, como el abortar solicitudes JSONP.

    Más información sobre este gran cambio en la documentación sobre jQuery.ajax().

  • Otra novedad sumamente interesante son los Objetos Diferidos (Deferred Objects), que permiten trabajar con valores devueltos de solicitudes Ajax asíncronas que pudieran no estar presentes de manera inmediata. Adicionalmente proporcionan la habilidad de adjuntar múltiples manejadores de eventos, algo que antes era imposible.

    Como ejemplo, el siguiente código antes no era posible, pero con jQuery 1.5 ya podemos adjuntar varios manejadores de eventos de manera inmediata luego de hacer la solicitud Ajax:

    var jxhr = $.ajax({ url: "ejemplo.php" })
        .success(function() { alert("¡Éxito!"); })
        .error(function() { alert("¡Ocurrió un Error!"); })
        .complete(function() { alert("Solicitud Completada"); });

    Más información en la documentación de los Deferred Objects.

  • ¡Otra poderosa novedad! Con jquery.Sub() ahora es posible anular métodos nativos de jQuery sin realmente destruirlos, o sea, podemos clonar una instancia de jQuery para modificar sus propiedades y métodos, sin afectar al objeto original de jQuery.

    Con jQuery.sub() la imaginación es el límite, ya que podemos extender el propio framework sin afectar su núcleo (core). Aquí un ejemplo:

    (function() {
      var myjQuery = jQuery.sub();
     
      myjQuery.fn.remove = function() {
        // Nueva funcionalidad
        this.trigger("remove");
     
        // Debemos asegurarnos de llamar el método original de jQuery
        return jQuery.fn.remove.apply( this, arguments );
      };
     
      myjQuery(function($) {
        $(".menu").click(function() {
          $(this).find(".submenu").remove();
        });
     
        // El nuevo evento en acción desde la copia de jQuery
        $(document).bind("remove", function(e) {
          $(e.target).parent().hide();
        });
      });
    })();
  • El resto de las novedades, pueden encontrarlas en la documentación completa de jQuery 1.5

Referencias

Para el presente post, usé las siguientes referencias:

Post tags