2009-07-13 12 views
12

Ist es möglich, zwei verschiedene jQuery-Versionen im selben Dokument zu haben und sie nicht miteinander kollidieren zu lassen?Zwei jQuery-Versionen auf derselben Seite

Zum Beispiel, wenn ich ein Bookmarklet erstellen und den Code auf jQuery basieren soll. Dieses Bookmarklet wird auf einer Seite eingefügt, die eine andere Version von jQuery verwendet, dann überschreibt mein Code die auf der Seite verwendete Version.

Ist es möglich, das zu vermeiden? Oder gibt es einige andere Bibliotheken, die diese Funktionalität bietet Oder vielleicht sollte ich die ganze Sache überdenken.

Danke für Antworten und Zeiger,

bob

+1

Sie können überprüfen, ob jQuery bereits auf einer Seite ist, bevor Sie es erneut einspeisen. –

+3

Sie sollten es auf jeden Fall überdenken. Sie sollten ältere Funktionen aktualisieren, um mit der neuen jQuery zu arbeiten, einschließlich beider ist nur eine Tonne Bloat und ein Wunsch nach Kollisionen. –

+0

Haben Sie die Kontrolle über die Version von jQuery, die der Seite hinzugefügt wird? Sie möchten nicht, dass Ihre Besucher eine andere Version der Bibliothek herunterladen müssen, wenn sie Ihnen helfen können - es ist eine schlechte Übung und vergrößert die Dateigröße des Dokuments für Ihre Besucher. –

Antwort

12

jQuery kommt mit einer Möglichkeit, Kollisionen zu vermeiden. Nachdem Sie die erste Version geladen haben, können Sie sie einer anderen Variablen zuweisen.

var $j = jQuery.noConflict(); 

Und dann laden Sie Ihre zweite jQuery-Version. Auf die erste, die Sie laden, kann mit $ j (...) zugegriffen werden, während auf die zweite mit $ (...) zugegriffen werden kann.

Alternativ hat jemand eine gemacht, um den Wechsel zwischen verschiedenen Versionen zu erleichtern.

+0

Bob kontrolliert nicht, wenn die erste Version geladen wird, da dies auf einer Website eines Drittanbieters über einen Buchmarkt geschieht. Sie könnten noConflct aufrufen, bevor Sie die neuere Version über createElement ('script') hinzufügen - was die Website von Drittanbietern "upgraden" würde. Kannst du davon ausgehen, dass der 3rd-Party-Code kompatibel ist? – russau

+0

Mit dem Versions-Helper können Sie jederzeit zwischen verschiedenen Versionen von jQuery hin- und herwechseln. Sagen Sie einfach Versions.use ('jquery', 'default') oder Versions.use ('jquery', 'latest'), nachdem Sie sie zum Wechseln hinzugefügt haben. Wenn sein Code die neueste Version verwendet und der dritte Teil nicht, muss er lediglich sicherstellen, dass er die Version korrekt am Anfang und am Ende seines Codes einstellt. – Chris

2

Hier ist eine Möglichkeit zu erkennen, ist JQuery bereits vorhanden ist: jQuery in widget

die älteste Version von JQuery

Work out Code mit arbeiten .. Und weigere dich zu arbeiten, wenn die vorhandene Version zu alt ist. Nur ein paar Leute werden vermissen, die meisten Websites mit JQuery sind ziemlich aktuell.

0

Warum nicht nur verschiedene Versionen Ihres Javascript haben, für verschiedene Versionen von jquery, also, schauen Sie, welche Version ist auf der Seite und Holen Sie sich den passenden Code, der mit dieser Version von jquery funktioniert.

Dies wäre sicherer, da alles andere sehr fragil sein könnte, da es sich anhört, als hättest du keine Kontrolle über die Version von jquery, die auf der Seite sein wird.

Verwandte Themen