2017-08-20 3 views
0

Ich konfrontiert confeing Problem auf meiner Website.jQuery Konflikt zwischen zwei Bibliotheken

Ich benutze zwei jquery Bibliotheken eine 1.5.1 und andere 3.2.1. Für neueste Version von jQuery verwende ich noConflict Modus

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
     var inst = jQuery.noConflict(); 
</script> 

alles in Ordnung ist, aber wenn der Kunde shiping Methode auf meiner Website ist die Auswahl zeigt es einen Fehler und andere meine Skripte nicht funktioniert.

enter image description here

Aber jQuery-Bibliothek 3.2.1 sollte in noConflict Modus. Und es gibt keine Konflikte und Fehler auf den anderen Seiten der Website.

Ich weiß nicht, wie ich dieses Problem beheben kann.

Dank

+0

Ich bin mir nicht sicher, aber Sie müssen möglicherweise "wahr" zu "noConflict" übergeben. Beachten Sie die Hinweise im Dokument https://api.jquery.com/jquery.noconflict/ zur Verwendung mehrerer Versionen (sie werden nicht empfohlen) und müssen möglicherweise unter diesen Umständen den jQuery-Namen aufgeben. – pinkfloydx33

+0

Ich weiß nicht warum, aber wenn ich True benutze funktioniert es überhaupt nicht. – Coddy

Antwort

0

jQuery .live() wird in der Version 1.9 weiter entfernt.

Sie müssen also ändern:

.live(events, function) 

sollte zur Karte:

.on(eventType, selector, function) 

Unter Bezugnahme Links sind:

http://api.jquery.com/on/

http://api.jquery.com/off/

Die Seite für live() zeigt, wie on() konvertieren:

http://api.jquery.com/live/

Aktualisiert:

Sie jQuery mit noConflict(true) befreien kann. Obwohl, wenn Sie diesen Weg nehmen, werden Sie möchte auf jeden Fall einen Alias ​​als weder $ noch jQuery:

var jq = jQuery.noConflict(true); 

Oder kann man so machen kann:

var jq = $.noConflict(); 

dann können Sie Jquery-Funktion aufrufen mit jq.

jq('#selector'); 
+0

Er benutzt 1.5.1 ** und ** 3.2.1, also erwartet er, dass 'live' verfügbar ist. Es scheint der Punkt der Frage zu sein, die Seite mit beiden Versionen zur Arbeit zu bringen (und nicht, wie man upgradet). Nach ihren Dokumenten muss er wahrscheinlich nur zu noConflict passen. Obwohl sie die Verwendung mehrerer Versionen nicht empfehlen, scheint es möglich zu sein. – pinkfloydx33

+0

Ok.Du hast recht. Sie können also entweder "true" übergeben oder es gibt eine Alternative, die ich in meiner aktualisierten Antwort vorgeschlagen habe. –

+0

Ich weiß, dass live() entfernt wurde, daher verwende ich zwei jQuery-Bibliotheken und eine davon ist 1.5.1. Ich weiß nicht, warum die zweite jQuery-Bibliothek Fehler wirft, sollte es im NoConflict-Modus sein. Und dieser Modus funktioniert perfekt auf anderen Seiten meiner Website mit Ausnahme einer Seite. – Coddy