jQuery Aucun conflit persiste encore avec d’autres versions de jQuery

J’essaie de lancer le plug-in à double curseur avec une fenêtre de visualisation estalge. Ils utilisent tous deux jQuery, et travaillent séparément mais quand je les ai placés ensemble, on se casse. J’ai essayé d’implémenter la règle jQuery no conflict, mais je pense qu’il me manque un petit détail quelque part. Mon codage ressemble jusqu’ici à:

        $.noConflict(); jQuery(document).ready(function($) { jQuery('#etalage').etalage(); }); $(".carousel").dualSlider({ auto:true, autoDelay: 6000, easingCarousel: "swing", easingDetails: "easeOutBack", durationCarousel: 1000, durationDetails: 500 });  

Toute aide serait grandement appréciée. Je vous remercie

    Vous utilisez noConflict manière incorrecte.

          

    Vous pouvez avoir plusieurs versions de jQuery. $.noConflict vous retournera l’object jQuery. Vous auriez besoin de l’enregistrer comme une autre variable.

        

    DEMO: http://jsbin.com/uhazan/3/edit#javascript,html,live

    NOTE: La variable jQuery sera définie sur 1.6.2 (la deuxième), si vous voulez qu’elle soit 1.3.2 (la première), transmettez true à $.noConflict .

    PS Vous voudrez peut-être mettre votre $(".carousel").dualSlider dans le $(document).ready( .

    Essayez de placer votre slider dans jQuery(document).ready(function($) {});

    Du site du propriétaire

    Etalage prend-il en charge le mode sans conflit jQuery?

    Le plugin lui-même est prêt à tout conflit. Il suffit de remplacer le "$" par "jQuery" endroit où vous lancez le plugin, comme ceci:

     jQuery(document).ready(function(){ jQuery('#etalage').etalage(); }); 

    Vous n’avez pas besoin de deux librairies jQuery Core

    Essayez ceci à la place:

            

    Si vous devez utiliser plusieurs versions de jquery, utilisez

        

    Appelez maintenant l’ancienne version de jquery comme

     jq132('element').doSomething(); 

    et la nouvelle version de jquery pourrait être la suivante

     $('element').doSomething(); 

    Le $(".carousel").dualSlider({ line est en dehors de la fonction jQuery(document).ready() , ce dont je suis à peu près sûr que ce n’est pas votre intention. Pour l’instant, cela fonctionnerait:

     jQuery.noConflict(); jQuery(document).ready(function($) { $('#etalage').etalage(); $(".carousel").dualSlider({ auto:true, autoDelay: 6000, easingCarousel: "swing", easingDetails: "easeOutBack", durationCarousel: 1000, durationDetails: 500 }); }); 

    Cependant, votre code pose d’autres problèmes. Vous apportez deux versions de jQuery, dont l’une très ancienne (1.3.2). Vous n’obtiendrez pas de bons résultats avec cela. Si une bibliothèque s’appuie sur une ancienne version de jQuery, veuillez ne pas utiliser cette bibliothèque. De toute façon, cela ne fonctionnera probablement pas bien sur cette page, car toute activité d’exécution de cette bibliothèque n’aura access qu’à jQuery 1.6. La documentation jQuery .noConflict indique que vous pouvez fournir boolean true comme argument à .noConflict afin de libérer également le mot clé jQuery, mais que vos plugins chargés sont déjà fermés par rapport à l’ancienne version.