2012-12-21 11 views
8

Sto lavorando su un sito Wordpress che contiene un numero di plugin jQuery e jQuery UI-dependent. Tutto sembrava funzionare correttamente, ma quando ho spostato l'intero sito sul nuovo nome di dominio, ho iniziato a visualizzare il seguente errore nella console di Chrome:Il widget jQuery non ha alcun metodo "estendere"

Unchaught TypeError: Object function (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] = function (c) {return !! a.data (c, b)}, un [e] = a [e] || {}, un [ e] [b] = function (a, b) {arguments.length & & this._createWidget (a, b)}; var g = new c; g.options = a.extend (! 0, {}, g. opzioni), un [e] [b] = .prototype a.extend (0, g, {namespace: e, widgetName: B, widgetEventPrefix: un [e] [b] .prototype.widgetEventPrefix || b, widgetBaseClass: f}, d), a.widget.bridge (b, a [e] [b])} non ha alcun metodo 'estendere'

Ecco la riga in jQuery UI 1.9.3 che sembra b causando ciò:

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

Non riesco a superare questo, non importa quello che ho cercato di fare. Sto usando il metodo corretto (o così ho letto) per aggiungere script usando wp_enqueue_script() e settando jquery come dipendenza di jquery-ui, e guardando l'HTML, jQuery si sta effettivamente caricando prima dell'interfaccia utente di jQuery.

Se qualcuno ha qualche idea di cosa potrebbe accadere lo apprezzerei molto, questo mi sta facendo impazzire.

+0

Tutti i file vengono caricati correttamente? – epascarello

+0

Quale linea di jqueryui.js sta succedendo? –

+0

Sarei utile vedere un esempio dal vivo. – Batfan

risposta

7

Questa non è la risposta al tuo problema, ma per illustrare, a volte sembra che tu stia avendo un errore jQuery quando stai effettivamente avendo un errore con il tuo javascript personalizzato.

Se si sta utilizzando Chrome, è possibile aprire la console (Strumenti> Console Javascript) e girare la freccia piccola aperta sul proprio errore. Questo ti mostrerà tutte le linee di codice che hanno causato l'errore.

Vedi Immagine:

Use the console to find the line error

Spesso se si guarda verso il basso l'elenco che porterà ad un altro javascript jQuery diverso. Se si fa clic sui collegamenti neri a destra (ad esempio activity.php) si apriranno le righe incriminate se è javascript.

Un altro problema (se si utilizza Wordpress) è che si potrebbe caricare jQuery due volte. Sembra che tu l'abbia fatto nel modo giusto, tuttavia, è possibile che uno dei tuoi plugin non lo abbia fatto.

Modifica Quale versione di jQuery sono in esecuzione (scusate ui misread jquery)

Dalla documentazione: Forms Ninja utilizza la versione di jQuery (la libreria javascript) che viene fornito con WordPress. Ciò significa che se si sta utilizzando un file jQuery esterno o un altro plugin sta caricando la propria versione di jQuery, potrebbero verificarsi degli errori. Ad esempio, se stai usando WordPress versione 3.3 o successiva, Ninja Forms si aspetta che il tuo sito abbia la versione 1.7 di jQuery. Se hai un tema o un plugin che cambia questo in una versione precedente di jQuery, Ninja Forms potrebbe non funzionare correttamente.

+1

So che questo non aiuta molto, ma qui c'è la traccia dello stack dell'errore: http://i.imgur.com/ohYGJ.png Ovviamente la libreria dei moduli ninja sembra essere il colpevole, ma la linea che causa l'errore non sembra errato o nulla (e non è stato modificato poiché i file sono stati spostati). –

+0

Questa è la riga in visualizzazione ninja-forms: $ ("# ninja_form_overlay"). Dialog ({height: 200, autoOpen: false, modal: true}); –

+0

Sì, è così. Stavo caricando manualmente nuove versioni di quelle librerie e per qualche motivo le forme di ninja funzionavano bene in precedenza, ma penso che il plugin sia stato aggiornato e che deve essere stato ciò che è andato storto. Ho rimosso quelle istruzioni di caricamento manuale costringendolo a utilizzare le librerie incluse e tutto è tornato alla normalità. Grazie! –

Problemi correlati