saltar intro

carguen, apunten, this._parent

Archive for enero, 2011

Envolver scripts de jQuery contra conflictos

with 8 comments

IMG_2325.JPG
credit: jwalsh

Este es un simple tip para evitar conflictos entre jQuery con otras librerías javascript.

Cuando utilizas jQuery nórmalmente se suele añadir todo el código dentro de la función:

$(document).ready(function() {
// tus scripts
});

Y se utiliza el comodín “$” como sustituto enriquecido del “getElementById“.

El problema surge cuando después de escribir todo el código necesario te encuentras que debes  añadir otra librería, como script.aculo.us, mootools, o Prototype, y debes sustituir todos los signos “$” por otro diferente.

La manera que hasta ahora utilizaba era colocando dentro del $(document).ready(function(){}); lo siguiente:

var loquesea = jQuery.noConflict();

Y donde antes escribía $("#contenido").fadeIn(); debía poner loquesea("#contenido").fadeIn();

Esto no tendría mayor problema salvo que a veces el código sea muy largo o añadas scripts de terceros que no terminas de controlar del todo.

Pues bien, el remedio es rápido y fácil. Hay que envolver la función $(document).ready(function() {}); entre (function($){ y })(jQuery); quedando el script así:

(function($){
$(document).ready(function() {
// scripts
});
})(jQuery);

Sin olvidar meterlo todo dentro de las etiquetas <script type="text/javascript">...</script> ;-)

Extraido del slide JavaScript in Drupal 7: What developers need to know.

Written by sergiomas

enero 24th, 2011 at 5:23 pm

Posted in javascript,jQuery