2009-09-09 16 views
15

Si una página tiene JQuery y Prototype, entonces tengo un conflicto. Hay una opción para deshabilitar el signo $ para JQuery, por lo que no hay conflicto, pero tengo que usar la palabra clave JQuery en lugar de $.Cómo evitar el conflicto entre JQuery y Prototype

Me pregunto si hay alguna opción para Prototype para resolver este conflicto. ¿Hay alguna forma de utilizar ambas bibliotecas sin comprometer su beneficio o palabra clave corta?

Por lo que sé, no es una buena idea usar múltiples bibliotecas JS para la misma página; pero puede ser útil por algunas veces.

+0

Asegúrese de cargar jQuery antes prototipo –

+0

estoy pensando que esto tiene que ser una de las preguntas más frecuentes jQuery :) –

Respuesta

34

Utilice el método noConflict para jQuery y asígnelo a una nueva variable (corta). Use la nueva variable donde quiera que haya usado $ para jQuery.

var $j = jQuery.noConflict(); 

$j(function() { 
    $j('#selector').each(....); 
}); 

o, si no es necesario mezclar Prototipo/jQuery se puede envolver todo el código jQuery en una función anónima.

(function($) { 
    // $ sign here is a parameter, which is set to jQuery 

    $(function() { 
     $('#selector').each(....); 
    }); 
})(jQuery); 
+0

¿Hay alguna orden particular que jQuery tiene que ser incluido (nombre, apellido, etc.) para cualquiera de sus ejemplos de código? –

+0

Si usa noConflict, se debe incluir jQuery antes de llamarlo (obviamente) como lo hace la otra biblioteca que define $. Consulte esta página para obtener más información: http://docs.jquery.com/Using_jQuery_with_Other_Libraries – tvanfosson

+0

@tvanfosson No sabía que se podía asignar una variable, buen truco :) Uhh ... Sé acerca de la segunda técnica, pero no me gusta :(me hace confundir fácilmente. Gracias por tu tiempo :) – Sadi

Cuestiones relacionadas