2012-12-21 13 views
8

Pracuję nad witryną Wordpress, która zawiera wiele wtyczek zależnych od jQuery i jQuery. Wydawało się, że wszystko działa dobrze, ale gdy przeszliśmy przez całą witrynę do nowej nazwy domeny, w konsoli Chrome pojawił się następujący błąd:widget jQuery nie ma metody "rozszerzania"

Nieprzyjęty TypeError: Funkcja obiektu (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] = funkcja (c) {return !! a.data (c, b)}, a [e] = a [e] || {}, a [ e] [b] = funkcja (a, b) {arguments.length & & this._createWidget (a, b)}; var g = nowa c; g.options = a.extend (! 0, {}, g. opcje), a [e] [b] .prototype = a.extend (! 0, g, {przestrzeń_adresów: e, nazwa_widoku: b, widgetEventPrefix: a [e] [b] .prototype.widgetEventPrefix || b, widgetBaseClass: f}, d), a.widget.bridge (b, a [e] [b])} nie ma metody "rozszerz"

Oto wiersz w jQuery UI 1.9.3, który wydaje się b e powodując w ten sposób:

this.options = $.widget.extend({}, 
this.options, 
this._getCreateOptions(), 
options); 

I nie może wydawać się ominąć ten w ogóle, bez względu na to, co starałem się zrobić. Używam odpowiedniej metody (lub tak, jak czytałem), aby dodać skrypty za pomocą wp_enqueue_script() i ustawiając jquery jako zależność jquery-ui, i patrząc na HTML, jQuery rzeczywiście ładuje się przed interfejsem jQuery.

Jeśli ktoś ma pojęcie o tym, co może się wydarzyć, byłbym bardzo wdzięczny, to doprowadza mnie do szału.

+0

Czy wszystkie pliki są ładowane poprawnie? – epascarello

+0

Jaka jest linia jqueryui.js? –

+0

Byłbym pomocny, aby zobaczyć przykład na żywo. – Batfan

Odpowiedz

7

To nie jest odpowiedź na twój problem, ale aby to zilustrować, czasami wygląda na to, że masz błąd jQuery, gdy faktycznie masz błąd z niestandardowym javascript.

Jeśli używasz przeglądarki Chrome, możesz otworzyć konsolę (Narzędzia> Konsola JavaScript) i obrócić małą strzałkę, aby otworzyć swój błąd. Spowoduje to wyświetlenie wszystkich linii kodu, które spowodowały błąd.

Zobacz obraz:

Use the console to find the line error

Często jeśli spojrzeć w dół listy, będzie to prowadzić do innego javascript innych niż jQuery. Po kliknięciu czarnych linków po prawej stronie (np. Activity.php) otworzy on linie obraźliwe, jeśli jest to javascript.

Innym problemem (jeśli korzystasz z WordPressa) jest to, że ładujesz jQuery dwa razy. Wygląda na to, że zrobiłeś to we właściwy sposób, jednak możliwe, że jedna z twoich wtyczek tego nie zrobiła.

Edit Jaka wersja jQuery są uruchomione (przepraszam błędnie odczytany jQuery UI)

Z dokumentacji: Formy Ninja używa wersji jQuery (biblioteki JavaScript), która jest dostarczana wraz z WordPress. Oznacza to, że jeśli używasz zewnętrznego pliku jQuery lub inna wtyczka ładuje własną wersję jQuery, mogą pojawić się błędy. Na przykład, jeśli używasz WordPress w wersji 3.3 lub wyższej, Ninja Forms oczekuje, że Twoja witryna będzie miała wersję 1.7 jQuery. Jeśli masz motyw lub plugin, który zmienia to do wcześniejszej wersji jQuery, Ninja Forms może nie działać poprawnie.

+1

Wiem, że to nie pomaga zbyt wiele, ale tutaj jest ślad stosu błędu: http://i.imgur.com/ohYGJ.png Oczywiście biblioteka formularzy ninja wydaje się być winowajcą, ale linia, która powoduje, że błąd nie wygląda na niepoprawny lub cokolwiek (i nie został zmieniony od czasu przeniesienia plików). –

+0

To jest linia w ninja-formula-display: $ ("# ninja_form_overlay"). Dialog ({height: 200, autoOpen: false, modal: true}); –

+0

Tak, to zrobiło. Ręcznie ładowałem nowe wersje tych bibliotek i z jakiegoś powodu formularze ninja działały dobrze wcześniej, ale myślę, że wtyczka została zaktualizowana i to musiało być coś, co poszło nie tak. Usunąłem te ręczne instrukcje ładowania, zmuszając je do korzystania z dołączonych bibliotek i wszystko wróciło do normy. Dzięki! –

Powiązane problemy