Heim > Web-Frontend > js-Tutorial > Hauptteil

Was tun, wenn verschiedene JQuery-Versionen in Konflikt geraten?

coldplay.xixi
Freigeben: 2020-11-30 15:17:00
Original
1873 Leute haben es durchsucht

Lösung für Konflikte zwischen verschiedenen JQuery-Versionen: Fügen Sie zuerst relevanten Code am Ende des Quellcodes von [1.4.2] hinzu und fügen Sie dann relevanten Code am Kopf aller Plug-Ins basierend auf dem Framework von [1.4.2] hinzu. ; und schließlich Um die auf [jQuery1.4.2] basierende Auswahlfunktion zu verwenden, verwenden Sie [$j4(element)].

Was tun, wenn verschiedene JQuery-Versionen in Konflikt geraten?

Die Betriebsumgebung dieses Tutorials: Windows7-System, jQuery1.3.2 und jQuery1.4.2-Version. Diese Methode ist für alle Computermarken geeignet.

Lösungen für Konflikte zwischen verschiedenen jQuery-Versionen:

Fall: Konflikte zwischen jQuery 1.3.2 und 1.4.2 lösen.

Schritt 1: Fügen Sie am Ende des 1.4.2-Quellcodes einen Satz hinzu:

var $j4 = jQuery.noConflict(true);
Nach dem Login kopieren

Der Grund, warum ich ihn hier im Quellcode hinzufüge, anstatt ihn hinzuzufügen, wenn er verwendet wird, wie in den meisten Artikeln erwähnt, ist Da viele auf 1.4.2 basierende Plug-Ins hinzugefügt werden müssen, kann durch das Hinzufügen dieser Plug-Ins hier eine Duplizierung vermieden werden, die durch das Hinzufügen dieses Codes zu zu vielen Plug-Ins verursacht wird. Dieser Satz gibt alle Referenzberechtigungen von jQuery und $ in 1.4.2 auf. Das heißt, Plug-Ins, die auf 1.4.2 basieren, können jQuery und $ nicht mehr verwenden. Geben Sie gleichzeitig $j4 einen neuen Namensraum. Beachten Sie, dass es sich um ein Attribut von window handelt. Wenn Sie sich den Quellcode von 1.4.2 ansehen, werden Sie feststellen, dass er tatsächlich diese beiden Sätze ausführt:

window.$=_$;
window.jQuery=_jQuery;
Nach dem Login kopieren

Das Prinzip ist das gleiche wie window.$=_temp$ (gibt den Namespace zurück) , aber die Benennung ist anders. window.$=_temp$(返还命名空间)只是命名不同而已。

第二步:在基于1.4.2的框架的所有插件的头部加上以下代码:

var _temp$ = window.$,_tempjQuery = window.jQuery;
Nach dem Login kopieren

将jQuery1.3.2的$和jQuery放到临时的变量空间上:

window.$ = $j4;
Nach dem Login kopieren

这句和下面的那句都是为了给中间的代码能够正确使用jQuery和$用的。后面的$j4是赋予他们正确的引用。

window.jQuery = $j4;
Nach dem Login kopieren

之所以要先放临时变量存储,有三点必须这样做的理由:

①.我们不希望改动大量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。而在头部尾部加改动代码,中间的原始代码不动也是不错的一种方式。

②.因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码又用了他们来做引用,因为插件不可能预知冲突,即使有冲突他人开发的插件也一定要用$或者jQuery引用,除非它不是jQuery下的插件。

③.为了防止插件里面直接用window.$window.jQuery进行引用从而导致引用到1.3.2的jQuery和$,虽然这种情况比较少,但是以防万一。

中间的原始代码不动,尾部加以下代码:

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

第三步:以后要用基于jQuery1.4.2的选取函数就只能用$j4(element)了。

总结:到目前为止可行方案:jQuery1.4.2完全放弃$和jQuery的控制权限。1.3.2放弃$的控制权限但不放弃jQuery的权限,其实jQuery也可放弃,只不过要给个别名$j3。prototype最好放在jQuery1.3.2后面,它获得$的控制权限。只是以后要用jQuery1.4.2就必须用$j4来引用了。但这样即使有再多的jQuery框架版本冲突问题,也全部解决掉了。假如来了个1.2的jQuery怎么办,参照(2)的执行步骤,只不过第一步改为:

var $j2 = jQuery.noConflict(true);
Nach dem Login kopieren

第三步用$j2(element)

Schritt 2: Fügen Sie den folgenden Code zum Kopf aller Plug-Ins basierend auf dem 1.4.2-Framework hinzu:

rrreee

Fügen Sie $ und jQuery von jQuery1.3.2 in den temporären Variablenraum ein: rrreeeDieser Satz und der folgende Satz beziehen sich alle darauf, dass der mittlere Code jQuery und $ korrekt verwendet. Der folgende $j4 gibt ihnen die richtigen Referenzen.

rrreee
Es gibt drei Gründe, warum wir zuerst temporäre Variablen speichern müssen: 🎜🎜① Wir möchten nicht viel am Quellcode des jQuery-Plugins ändern. wir sollten es so wenig wie möglich ändern. Es ist auch eine gute Möglichkeit, geänderten Code am Anfang und am Ende hinzuzufügen, wobei der ursprüngliche Code in der Mitte unverändert bleibt. 🎜🎜② Da 1.4.2 die Kontrolle über jQuery und $ aufgegeben hat, der vorhandene Plug-In-Code sie jedoch als Referenz verwendet, da Plug-Ins keine Konflikte vorhersagen können, selbst wenn es Konflikte gibt, Plug-Ins, die von anderen entwickelt wurden muss $ oder jQuery zum Zitieren verwenden, es sei denn, es handelt sich nicht um ein Plugin unter jQuery. 🎜🎜③. Um zu verhindern, dass das Plug-in window.$ und window.jQuery direkt als Referenz verwendet, führt dies zum Verweis auf 1.3.2 jQuery und $, obwohl diese Situation relativ selten ist, aber nur für den Fall. 🎜🎜Der ursprüngliche Code in der Mitte bleibt unverändert und am Ende wird der folgende Code hinzugefügt: 🎜rrreee🎜🎜Schritt 3: Wenn Sie in Zukunft die auf jQuery1.4.2 basierende Auswahlfunktion verwenden möchten, können Sie nur $ verwenden j4 (Element). 🎜🎜🎜Zusammenfassung: Die bisher praktikable Lösung: jQuery1.4.2 gibt die Steuerberechtigungen von $ und jQuery vollständig auf. 1.3.2 Geben Sie die Kontrollrechte von $ auf, nicht jedoch die Rechte von jQuery. Tatsächlich kann jQuery auch aufgegeben werden, es muss jedoch der Alias ​​​​$j3 angegeben werden. Am besten platzieren Sie den Prototyp hinter jQuery1.3.2, der die Steuerberechtigungen von $ erhält. Wenn Sie jQuery1.4.2 in Zukunft verwenden möchten, müssen Sie jedoch $j4 verwenden, um darauf zu verweisen. Aber auf diese Weise werden alle Konflikte gelöst, egal wie viele jQuery-Framework-Versionskonflikte es gibt. Was passiert, wenn jQuery 1.2 kommt? Sehen Sie sich die Ausführungsschritte von (2) an, aber der erste Schritt wird geändert in: 🎜rrreee🎜Der dritte Schritt verwendet $j2(element). Die Prinzipien sind die gleichen. 🎜🎜Ich glaube, dass das, was in diesem Artikel beschrieben wird, einen gewissen Referenzwert für die jQuery-Programmierung aller hat. 🎜🎜🎜Verwandte kostenlose Lernempfehlungen: 🎜JavaScript🎜 (Video) 🎜🎜

Das obige ist der detaillierte Inhalt vonWas tun, wenn verschiedene JQuery-Versionen in Konflikt geraten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!