Ich arbeite an einer WordPress-Site, die eine Reihe von jQuery- und jQuery-UI-abhängigen Plugins enthält. Alles schien gut zu funktionieren, aber als wir die gesamte Website auf den neuen Domainnamen umstellten, sah ich den folgenden Fehler in der Chrome-Konsole:
Nicht erfasster TypeError: Objektfunktion (b,c,d){var e=b.split(.””)[0],f;b=b.split(.””)[1],f=e+”-“+b,d||(d=c,c=a.Widget),a.expr[“:”][f]=Funktion(c){Rückgabe!!a.Daten(c,b)},a[e]= ein[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])} hat keine Methode ‘extend’
Hier ist die Zeile in jQuery UI 1.9.3, die dies zu verursachen scheint:
Ich komme einfach nicht darüber hinweg, egal was ich versucht habe. Ich verwende die richtige Methode (oder so habe ich gelesen), um Skripte hinzuzufügen, indem ich wp_enqueue_script() verwende und jquery als Abhängigkeit von jquery-ui setze, und wenn ich mir den HTML-Code anschaue, wird jQuery tatsächlich vor der jQuery-Benutzeroberfläche geladen.
Wenn jemand eine Ahnung hat, was passieren könnte, wäre ich wirklich dankbar, das macht mich wahnsinnig.
Werden alle Dateien korrekt geladen?
– escarello
21. Dezember 2012 um 19:53 Uhr
In welcher Zeile von jqueryui.js passiert das?
– Kevin B
21. Dezember 2012 um 19:53 Uhr
Ich wäre hilfreich, um ein Live-Beispiel zu sehen.
– Batfan
21. Dezember 2012 um 19:56 Uhr
Ich erhalte keine anderen seltsamen Fehler oder 404-Fehler oder ähnliches (beide werden aus dem Skript-Repository von Google geladen). Es wird gemeldet, dass dieser Fehler in Zeile 568 dieser Datei auftritt: ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/…
– Wilhelm Thomas
21. Dezember 2012 um 19:56 Uhr
Ich würde das Beispiel zeigen, aber da dies die Website eines Kunden ist, glaube ich nicht, dass ich sie teilen kann, während sie in Produktion ist.
– Wilhelm Thomas
21. Dezember 2012 um 19:57 Uhr
roter Wintergarten
Dies ist nicht die Antwort auf Ihr Problem, aber zur Veranschaulichung sieht es manchmal so aus, als hätten Sie einen jQuery-Fehler, wenn Sie tatsächlich einen Fehler mit Ihrem benutzerdefinierten Javascript haben.
Wenn Sie Chrome verwenden, können Sie die Konsole öffnen (Extras > Javascript-Konsole) und den kleinen Pfeil bei Ihrem Fehler öffnen. Dies zeigt Ihnen alle Codezeilen, die den Fehler verursacht haben.
Siehe Bild:
Wenn Sie in der Liste nach unten schauen, führt dies häufig zu einem anderen Javascript als jQuery. Wenn Sie auf die schwarzen Links auf der rechten Seite klicken (dh activity.php), werden die anstößigen Zeilen geöffnet, wenn es sich um Javascript handelt.
Ein weiteres Problem (wenn Sie WordPress verwenden) ist, dass Sie jQuery möglicherweise zweimal laden. Es hört sich so an, als hätten Sie es richtig gemacht, aber es ist möglich, dass eines Ihrer Plugins dies nicht getan hat.
Bearbeiten
Welche Version von jQuery verwenden Sie (Entschuldigung, jquery ui falsch gelesen)
Aus der Dokumentation: Ninja Forms verwendet die Version von jQuery (die Javascript-Bibliothek), die mit WordPress geliefert wird. Das bedeutet, wenn Sie eine externe jQuery-Datei verwenden oder ein anderes Plugin seine eigene Version von jQuery lädt, können Fehler auftreten. Wenn Sie beispielsweise WordPress Version 3.3 oder höher verwenden, erwartet Ninja Forms, dass Ihre Website Version 1.7 von jQuery hat. Wenn Sie ein Design oder Plugin haben, das dies zu einer früheren Version von jQuery ändert, funktioniert Ninja Forms möglicherweise nicht richtig.
Ich weiß, das hilft nicht allzu viel, aber hier ist der Stack-Trace des Fehlers: i.imgur.com/ohYGJ.png Offensichtlich scheint die Ninja-Formularbibliothek der Schuldige zu sein, aber die Zeile, die den Fehler verursacht, sieht nicht falsch aus oder so (und sie wurde nicht geändert, seit die Dateien verschoben wurden).
– Wilhelm Thomas
21. Dezember 2012 um 20:04 Uhr
Dies ist die Zeile in Ninja-Forms-Display: $(“#ninja_form_overlay”).dialog({height: 200,autoOpen: false,modal: true});
– Wilhelm Thomas
21. Dezember 2012 um 20:05 Uhr
Ja, das hat es getan. Ich habe neue Versionen dieser Bibliotheken manuell geladen und aus irgendeinem Grund funktionierten Ninja-Formulare vorher gut, aber ich denke, das Plugin wurde aktualisiert und das muss schief gelaufen sein. Ich habe diese manuellen Ladeanweisungen entfernt, die es zwangen, die enthaltenen Bibliotheken zu verwenden, und alles wurde wieder normal. Vielen Dank!
– Wilhelm Thomas
21. Dezember 2012 um 20:19 Uhr
13868400cookie-checkjQuery-Widget hat keine Methode “extend”yes
Werden alle Dateien korrekt geladen?
– escarello
21. Dezember 2012 um 19:53 Uhr
In welcher Zeile von jqueryui.js passiert das?
– Kevin B
21. Dezember 2012 um 19:53 Uhr
Ich wäre hilfreich, um ein Live-Beispiel zu sehen.
– Batfan
21. Dezember 2012 um 19:56 Uhr
Ich erhalte keine anderen seltsamen Fehler oder 404-Fehler oder ähnliches (beide werden aus dem Skript-Repository von Google geladen). Es wird gemeldet, dass dieser Fehler in Zeile 568 dieser Datei auftritt: ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/…
– Wilhelm Thomas
21. Dezember 2012 um 19:56 Uhr
Ich würde das Beispiel zeigen, aber da dies die Website eines Kunden ist, glaube ich nicht, dass ich sie teilen kann, während sie in Produktion ist.
– Wilhelm Thomas
21. Dezember 2012 um 19:57 Uhr