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)].
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);
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;
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;
将jQuery1.3.2的$和jQuery放到临时的变量空间上:
window.$ = $j4;
这句和下面的那句都是为了给中间的代码能够正确使用jQuery和$用的。后面的$j4
是赋予他们正确的引用。
window.jQuery = $j4;
之所以要先放临时变量存储,有三点必须这样做的理由:
①.我们不希望改动大量的jQuery插件源代码,最好是不动,即使改的话,尽量改的少。而在头部尾部加改动代码,中间的原始代码不动也是不错的一种方式。
②.因为1.4.2的已经放弃了jQuery和$的控制权,但是已有的插件代码又用了他们来做引用,因为插件不可能预知冲突,即使有冲突他人开发的插件也一定要用$或者jQuery引用,除非它不是jQuery下的插件。
③.为了防止插件里面直接用window.$
和window.jQuery
进行引用从而导致引用到1.3.2的jQuery和$,虽然这种情况比较少,但是以防万一。
中间的原始代码不动,尾部加以下代码:
window.$ = _temp$;//将$的引用权限返还给jQuery1.3. window.jQuery = _tempjQuery;//将jQuery的引用权限返还给jQuery1.3.
第三步:以后要用基于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);
第三步用$j2(element)
Schritt 2: Fügen Sie den folgenden Code zum Kopf aller Plug-Ins basierend auf dem 1.4.2-Framework hinzu:
rrreeeEs 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-inFü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
rrreee$j4
gibt ihnen die richtigen Referenzen.
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!