2012-12-21 139 views
8

我正在一個包含大量jQuery和jQuery UI依賴插件的Wordpress網站上工作。一切似乎工作正常,但當我們將整個網站移到新的域名時,我開始在Chrome控制檯中看到以下錯誤:jQuery小部件沒有方法「擴展」

Uncaught TypeError:Object function(b,c,d){var E = b.split( 「 」)[0]中,f; b = b.split(「。 」)[1]中,f = E +「 - 」 + b,d ||(d = C,C =一個.Widget),a.expr [ 「:」] [F] =函數(C){返回!! a.data(C,b)},A [E] =α[E] || {},A [ e)[b] = function(a,b){arguments.length & & this._createWidget(a,b)}; var g = new c; g.options = a.extend(!0,{},g。選項),一個並[e] [b] .prototype = a.extend(0,G,{命名空間:即,widgetName:b,widgetEventPrefix:一個並[e] [b] .prototype.widgetEventPrefix || b,widgetBaseClass: f),d),a.widget.bridge(b,a [e] [b])}沒有方法'extend'

這裏是jQuery UI 1.9.3中的一行,似乎是b e造成這種情況:

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

無論我試圖做什麼,我似乎都無法克服這一點。我正在使用適當的方法(或者我讀過)通過使用wp_enqueue_script()添加腳本並將jquery設置爲jquery-ui的依賴關係,並查看HTML,jQuery實際上在jQuery UI之前加載。

如果任何人有任何可能發生的事情的想法,我會非常感激,這是讓我瘋狂。

+0

是否正確加載了所有文件? – epascarello

+0

jqueryui.js發生什麼? –

+0

我會很樂意看到一個現場示例。 – Batfan

回答

7

這不是你的問題的答案,但爲了說明,有時你看起來像是有一個jQuery錯誤,當你的自定義JavaScript實際發生錯誤時。

如果您使用的是Chrome,您可以打開控制檯(工具> Javascript控制檯)並旋轉打開錯誤的小箭頭。這會顯示導致錯誤的所有代碼行。

見圖片:

Use the console to find the line error

通常,如果你看不起名單將導致比jQuery的另一個JavaScript等。如果你點擊右側的黑色鏈接(即activity.php),它會打開有問題的行,如果它是javascript的話。

另一個問題(如果你使用Wordpress)是你可能會加載jQuery兩次。這聽起來像你做得正確,但是,你的一個插件可能不會。

編輯 您運行的是什麼版本的jQuery(對不起誤讀jQuery UI的)

從文檔:忍者形式使用該來包裝與WordPress的jQuery(JavaScript庫)的版本。這意味着如果您使用的是外部jQuery文件,或者其他插件正在加載自己的jQuery版本,則可能會出現錯誤。例如,如果您使用的是WordPress 3.3或更高版本,Ninja Forms期望您的網站擁有jQuery 1.7版本。如果您有一個主題或插件將其更改爲早期版本的jQuery,則Ninja Forms可能無法正常工作。

+1

我知道這並沒有太大的幫助,但是這裏是錯誤的堆棧跟蹤:http://i.imgur.com/ohYGJ.png顯然,忍者形式庫似乎是罪魁禍首,但是導致錯誤看起來不正確或任何錯誤(並且自從文件被移動後它沒有改變)。 –

+0

這是ninja-forms-display中的行: $(「#ninja_form_overlay」)。dialog({height:200,autoOpen:false,modal:true}); –

+0

是的,那是做到了。我手動加載這些庫的新版本,出於某種原因忍者表格以前工作得很好,但我認爲插件已更新,並且一定是出了什麼問題。 我刪除了那些手動加載語句,迫使它使用包含的庫,一切都恢復正常。謝謝! –