J'ai un document HTML où j'ai référencé jQuery version 1.2.2 dans l'en-tête pour une boîte épaisse et j'ai ensuite référencé JQuery 1.7.1 juste avant la balise Le problème est que la boîte épaisse ne fonctionnera pas à moins que la référence pour JQuery 1.7.1 soit supprimée, qui arrête ensuite le diaporama de travail. P>
J'ai googlé sur le point de savoir sur Le plus courant que j'ai vu et j'ai essayé est: Comment puis-je résoudre ce problème? P> CODE> CODE> Etiquette qui est pour un Picture Diaporama. P>
$ code> conflit mais aucune des solutions suggérées n'a travaillé. P>
var $ j = jquery.noconflic (); code> p> p>
5 Réponses :
si strong> em> les plug-ins sont bien élevés, cela devrait alors fonctionner: (évidemment, ces noms de script sont faits up.) Voici un exemple ( source ) (j'ai utilisé JQuery 1.4.2 et JQuery 1.7.1 parce que Google n'accueille pas 1.2.2). P> Ce qui fonctionne avec bien -Les plug-ins perhés parce qu'un plug-in bien élevé ne s'appuie pas sur le global ou p> deux de ceux-ci saisissent le global Si le plug-in veut attendre l'événement prêt, il peut également faire cela: P> $ code> du tout, mais utilise plutôt la valeur du jQuery code> global À partir de quand il a été chargé EM> et saisit une référence à une fermeture, utilise ensuite cette référence locale dans tout le code du plug-in, comme celui-ci: p> jQuery code> comme du moment où le plug-in est chargé em> puis utilisez leur alias local partout. p> jQuery(function($) {
// ...Plug-in code using `$` here -- note it's a *local* `$`,
// not the global `$`, and not the global `jQuery`...
});
La plupart des plugins utilisent des rappels qui seront exécutés plus tard. S'il y a une dépendance avec une version spécifique de JQuery, le problème n'aurait-il pas lieu à ce moment-là?
@Dystroy: pas si elles sont écrites correctement, non.
Je ne conseillerais pas d'utiliser deux versions différentes de JQuery. Il y a d'autres alternatives à une boîte épaisse qui fonctionne parfaitement avec la dernière jQuery. P>
<script src="http://code.jquery.com/jquery-1.2.2.min.js"></script>
<script type="text/javascript">
var jQ122 = jQuery.noConflict();
</script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
var jQ171 = jQuery.noConflict();
(function($) {
$(function() {
// here $ is jQuery 1.2.2
});
})(jQ122);
(function($) {
$(function() {
// here $ is jQuery 1.7.1
});
})(jQ171);
</script>
Ça marcherait. Veillez simplement à ce que les bibliothèques JavaScript puissent polluer l'espace de nom (indice: toute la bibliothèque doit être enveloppée par (fonction () ...) (jQuery) comme indiqué dans votre code. Vous devrez peut-être spécifier jQuery = JQ171 pour les supporter. En outre, TYPE = "TEXT / JAVASCRIPT" n'est pas nécessaire. Tous les navigateurs sont par défaut à JavaScript, comme ils le devraient.
Sauf si les bibliothèques que l'OP utilise, faites ceci (ou l'OP les édite de le faire), cela n'aide pas. Il montre une façon d'avoir accès à deux versions différentes de JQuery sur une page, mais ...
Ce que vous voulez faire est une pratique extrêmement mauvaise (vous devriez en effet migrer tout le code vers la même version), mais il peut être théoriquement effectué ...
Vous auriez besoin d'apporter des modifications aux plug-ins respectifs de toute façon Tho. ..
Considérons ce code: p> Vous modifiez alors le code de vos plugins au point où JQuery est remis au plugin, ce qui ressemblerait à ce problème: P> (function( $ ){
// all your plugins code would be here
})( jQuery ); // replace "jQuery" with one of your respective jQuery14/jQuery17 versions/variables
Bien que vous puissiez utiliser J'ai souvent eu des problèmes avec IE8 avec certaines bibliothèques quand je le fais . p> Donc, une solution alternative serait d'utiliser une iframe pour charger une page dans votre page actuelle. p> avoir une version donnée de jQuery sur une page, et une autre sur la seconde . P> Par exemple: p> jquery.noconflic (); code> pour déclarer des versions séparées de JQuery en même temps.
Je suggérerais de tout migrer à la version la plus récente.
Pourriez-vous fournir le code s'il vous plaît?
Ceci est un duplicata de Stackoverflow.com/Questtions/528241/...