Maison >interface Web >js tutoriel >Que faire en cas de conflit entre différentes versions de jquery
Solution aux conflits entre les différentes versions de jquery : ajoutez d'abord le code pertinent à la fin du code source de [1.4.2] puis ajoutez le code pertinent en tête de tous les plug-ins basés sur le framework de [ ; 1.4.2] Code ; enfin, si vous souhaitez utiliser la fonction de sélection basée sur [jQuery1.4.2], utilisez [$j4(element)].
L'environnement d'exploitation de ce tutoriel : système windows7, version jQuery1.3.2&&jQuery1.4.2 Cette méthode convient à toutes les marques d'ordinateurs.
Solution au conflit entre les différentes versions de jquery :
Cas : Résoudre le conflit entre jQuery 1.3.2 et 1.4.2.
Première étape : Ajouter une phrase à la fin du code source de la 1.4.2 :
var $j4 = jQuery.noConflict(true);
La raison pour laquelle elle est ajoutée ici dans le source le code n'est pas comme un gros. La plupart des articles mentionnent son ajout lorsque cela est nécessaire, car de nombreux plug-ins basés sur 1.4.2 doivent être ajoutés. L'ajouter ici peut éviter la duplication causée par l'ajout de ce code à un trop grand nombre de plug-ins. . 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;
Le principe est le même que window.$=_temp$
(renvoyer l'espace de noms), mais le nom est différent .
É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;
Placez le $ de jQuery1.3.2 avec jQuery Accédez à l'espace variable temporaire :
window.$ = $j4;
Cette phrase et la phrase suivante sont toutes deux destinées au code intermédiaire permettant d'utiliser correctement jQuery et $. Ce qui suit $j4
est de leur donner la bonne référence.
window.jQuery = $j4;
Il y a trois raisons pour lesquelles nous devons d'abord stocker les variables temporaires :
① Nous ne voulons pas modifier beaucoup de code source du plug-in jQuery. Il est préférable de ne pas le quitter. seul, même si vous le modifiez, essayez de le modifier 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 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 le plug-in ne peut pas prédire les conflits, même s'il y a des conflits développés par les autres Plugins doivent également être référencés avec $ ou jQuery, sauf s'il ne s'agit pas d'un plug-in sous jQuery.
③. Afin d'éviter que le plug-in utilise directement window.$
et window.jQuery
pour référencer jQuery et $ en 1.3.2, bien que cette situation soit relativement rare, c'est juste au cas où. Le code original au milieu de
reste inchangé, et le code suivant est ajouté à la fin :
window.$ = _temp$;//将$的引用权限返还给jQuery1.3. window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.
Étape 3 : Si vous souhaitez utiliser la fonction de sélection basée sur jQuery1 .4.2 à l'avenir, vous ne pourrez 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. Que faire 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);
La troisième étape utilise $j2(element)
. 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.
Recommandations d'apprentissage gratuites associées : JavaScript (vidéo)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!