web-dev-qa-db-fra.com

Faire cohabiter JQuery 1.6 et 1.8

J'ai beaucoup de problèmes avec les bibliothèques JQuery ...

Je répare le site web d'un client ...

Il a VM2 et Joomla 2.5. VirtueMart 2 utilise JQuery 1.6; mais le template du site web, qui utilise le framework Helix, utilise JQuery 1.8, voire 1.7 ...

Est-il possible de faire coexister JQuery 1.6 et 1.8?

Si j'active JQuery 1.6 avec JQuery Easy:

  • Les onglets de commentaires, Fancybox, Slider et la fenêtre de connexion ne fonctionnent pas ...

Si j'active JQuery 1.7/1.8:

  • Les variantes de produits et "ajouter au panier" à partir Détails du produit ne fonctionnera pas ...

Donc qu'est ce que je devrais faire?

Vous pouvez consulter le site Web dans le lien suivant: http://www.benaventegrow.com/ J'ai activé JQuery 1.6.4 avec JQuery Easy

[~ # ~] mis à jour [~ # ~]

J'ai réussi à faire en sorte que toutes les pages fonctionnent, mais des variantes de produits. Je dois implémenter JQuery 1.6.4 pour le faire fonctionner ...

1
Antonio

Il me semble qu'exécuter deux versions différentes de jQuery sur le même site vous causera beaucoup de maux de tête et de défis en matière de codage, à moins que vous ne soyez un codeur très expérimenté.

Une recherche rapide sur Google a révélé qu'il pourrait être possible d'utiliser jQuery 1.7 avec VM:

Si votre modèle utilise bootstrap.js, alors, pour résoudre une erreur de script avec jQuery (version 1.6.4) de VirtueMart, vous pouvez remplacer celle-ci VM version avec jQuery 1.7.1 - dans com_virtuemart/assets/js/le script s'appelle jquery.min.js VirtueMart 2.0.x et fancybox fonctionnera toujours avec cette version.

Vous devriez essayer cette solution en premier.

En cas d'échec, il existe un moyen d'exécuter plusieurs versions de jQuery:

<script type='text/javascript' src='path/to/jquery_1.8.js'></script>  
<script type='text/javascript'>  
 var $jq = jQuery.noConflict();  
</script>  
<script type='text/javascript' src='path/to/jquery_1.6.js'></script>

À présent $jq appartient à jQuery 1.8, et $ à jQuery 1.6. Enfin, vous devez parcourir votre code de modèle et modifier le code jQuery en conséquence.

1
johanpw