2011-06-13 10 views
6

Estoy intentando usar el control deslizante Nivo JQuery (http://nivo.dev7studios.com/) y una galería desplazable (http://flowplayer.org/tools/demos/scrollable/index.html) .JQuery Version Conflict

Ahora me he encontrado con un problema, básicamente el Nivo deslizante utiliza esta librería jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 

y la Galería Scrollable utiliza éste:

<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script> 

Cuando ambos están activados, sólo el la galería de miniaturas funciona (porque la importación del guión se realiza después del nivo), cuando la versión 1.42 está habilitada, solo funciona el Nivo, y cuando solo está habilitada la versión 1.2.5, solo funciona la Galería desplazable.

¿Qué debo hacer?

+1

Tal vez un duplicado de http://stackoverflow.com/questions/1566595/can-i-use-multiple-versions-of-jquery-on-the-same-page –

+1

cuando intenta modificar cada archivo .js es la carga mientras usa una versión de jQuery que es compatible con ambos. – ngen

+0

Una biblioteca que insiste en la versión 1.2.5 es algo con lo que tendría mucho cuidado: esa es una versión realmente antigua, por lo que si ese complemento no se ha actualizado más allá de eso, va a empeorar en el futuro. Hay como mil millones de complementos de galería de imágenes para elegir, por lo que debería ser posible encontrar algo que se mantenga de forma más activa. – Pointy

Respuesta

8

uso de esta solución si no se puede utilizar un solo archivo de jQuery, tanto para los plugins:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    var jQuery_1_4_2 = jQuery.noConflict(); 
</script> 
<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script> 

Para usar jQuery 1.4.2, poner el código se utiliza en un SEF (Auto Función de Ejecución) de esta manera:

(function($){ 
    //code using jQuery 1.4.2 
    //here the $variable will be the jQuery object of 1.4.2 
})(jQuery_1_4_2) 

Para jQuery 1.2.5, puede usar $ variable directamente.

ACTUALIZACIÓN: Según su comentario, a continuación se muestra la manera de usarlo.

Si desea utilizar jQuery 1.4.2, utilice jQuery_1_4_2 objeto
Por ejemplo: jQuery_1_4_2("#abc").slider(options)

Si desea utilizar jQuery 1.2.5 uso $ o un objeto jQuery
Por ejemplo: $("#abc").scrollable(options)

+0

No estoy muy familiarizado con JQuery, y realmente no entendí qué hacer en la segunda parte. –

+0

Actualicé mi respuesta, pero aún así es mejor tener solo una versión de JQuery en una página web –

+0

gracias, por lo que básicamente utiliza una biblioteca jquery en particular, según el div que desee –

2

El sitio web de Jquery Tools dice que la actualización se realizará en poco más de un mes y se ajustará a Jquery 1.6.

Dicho esto, hay un montón de maneras diferentes de despellejar a este gato, y la mayoría no están detrás de los tiempos. He estado usando jQuery Infinite Carousel con gran éxito. Se ve y actúa de forma casi idéntica y está escrito sin conflictos con la última versión de jQuery.

No estaba claro por su publicación, pero evitaría cargar dos versiones diferentes de Jquery si lo hace. Es una TONELADA de gastos adicionales que realmente no está ayudando a tu sitio en absoluto.

+0

gracias, decidí ir por este carrusel, y se ve bien. Debería ser una actualización valiosa, gracias. –

1

simple simplemente copiar & pega este código java script en su etiqueta "HEAD"

// versión de jQuery código conflicto

var newJQuery = jQuery.noConflict(true), 
     oldJQuery = jQuery; 

    (function ($) { 
     // code that needs 1.4.2 goes here 
    }(newJQuery)); 

    (function ($) { 
     // code that needs 1.2.6 goes here 
    }(oldJQuery)); 

    // code that needs oldJQuery and newJQuery can go here 

y vea que es un trabajo 110% .......................... :) disfrutar !!!