Maison > interface Web > js tutoriel > Un moyen efficace de résoudre les conflits de version jquery_jquery

Un moyen efficace de résoudre les conflits de version jquery_jquery

WBOY
Libérer: 2016-05-16 16:38:04
original
1450 Les gens l'ont consulté

Les amis qui ont utilisé jQuery savent que différentes versions de jQuery peuvent provoquer des conflits. Cet article propose des solutions efficaces à ce problème comme suit :

Cas : Résoudre le conflit entre jQuery 1.3.2 et 1.4.2. (Cet exemple a été testé et réussi !)

Première étape : Ajoutez une phrase à la fin du code source 1.4.2 :

var $j4 = jQuery.noConflict(true);
Copier après la connexion

La raison pour laquelle je l'ajoute ici dans le code source au lieu de l'ajouter lorsque cela est nécessaire comme le mentionnent la plupart des articles est que de nombreux plug-ins basés sur 1.4.2 doivent être ajoutés. L'ajouter ici peut éviter d'en ajouter trop. Les plug-ins. Le code de phrase conduit à la duplication. Cette phrase abandonne toutes les autorisations de référence de jQuery et $ dans 1.4.2. C'est-à-dire que les plug-ins basés sur 1.4.2 ne peuvent plus utiliser jQuery et $. En même temps, donnez un nouvel espace de noms à $j4. Notez qu'il s'agit d'un attribut de window. Si vous regardez le code source de la 1.4.2, vous constaterez qu'il exécute réellement ces deux phrases :

window.$=_$;
window.jQuery=_jQuery;
Copier après la connexion

Le principe est le même que window.$=_temp$ (renvoyant l'espace de noms), mais la dénomination est différente.

Étape 2 : Ajoutez le code suivant en tête de tous les plug-ins basés sur le framework 1.4.2 :

var _temp$ = window.$,_tempjQuery = window.jQuery;
Copier après la connexion

Placez les $ et jQuery de jQuery1.3.2 dans l'espace variable temporaire :

window.$ = $j4;

Copier après la connexion

Cette phrase et la phrase ci-dessous sont toutes destinées au code du milieu permettant d'utiliser correctement jQuery et $. Le $j4 suivant sert à leur donner la référence correcte.

window.jQuery = $j4;

Copier après la connexion

Il y a trois raisons pour lesquelles nous devons d'abord stocker les variables temporaires :

①. Nous ne voulons pas modifier une grande quantité de code source du plug-in jQuery. Il est préférable de ne pas le modifier, même si nous le modifions le moins possible. C'est également un bon moyen d'ajouter du code modifié en tête et en queue, en laissant inchangé le code d'origine au milieu.

②. Parce que la version 1.4.2 a abandonné le contrôle de jQuery et $, mais le code du plug-in existant les utilise comme référence, car les plug-ins ne peuvent pas prédire les conflits, même s'il y a des conflits avec des plug-ins développés par d'autres. . Utilisez $ ou jQuery pour référencer, sauf s'il ne s'agit pas d'un plug-in sous jQuery.

③. Afin d'empêcher le plug-in d'utiliser directement window.$ et window.jQuery pour faire référence à 1.3.2 jQuery et $, bien que cette situation soit relativement rare, c'est juste au cas où.

Le code original au milieu reste inchangé, et le code suivant est ajouté à la fin :

window.$ = _temp$;//将$的引用权限返还给jQuery1.3.
window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.

Copier après la connexion

Étape 3 : Si vous souhaitez utiliser la fonction de sélection basée sur jQuery1.4.2 à l'avenir, vous ne pouvez utiliser que $j4(element).

Résumé : La solution réalisable jusqu'à présent : jQuery1.4.2 abandonne complètement les autorisations de contrôle de $ et jQuery. 1.3.2 Abandonnez les droits de contrôle de $ mais pas les droits de jQuery En fait, jQuery peut également être abandonné, mais il faut lui donner l'alias $j3. Il est préférable de placer le prototype derrière jQuery1.3.2, qui obtient les autorisations de contrôle de $. C'est juste que si vous souhaitez utiliser jQuery1.4.2 à l'avenir, vous devez utiliser $j4 pour le référencer. Mais de cette façon, quel que soit le nombre de conflits de versions du framework jQuery, ils seront tous résolus. Et si jQuery 1.2 arrive, reportez-vous aux étapes d'exécution de (2), mais la première étape est modifiée en :

var $j2 = jQuery.noConflict(true);
Copier après la connexion

Utilisez simplement $j2(element) dans la troisième étape. Les principes sont les mêmes.

Je crois que ce qui est décrit dans cet article a une certaine valeur de référence pour la programmation jQuery de chacun.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal