2014-01-25 219 views
1

我一直在努力處理腳本並收到以下錯誤: 「TypeError:$ 。是不是在控制檯功能」

這個問題是發生在Firefox和IE

很多頭部劃傷後,我改變了:

$(document).ready(function() { 

成...

jQuery(document).ready(function($){ 

並且該功能開始工作。

我一直在試圖找出爲什麼這應該工作和這兩個函數前綴之間的差異,我已經設法收集這是關於$沒有正確設置爲jquery(或某事沿着這些線)。

我想知道是否有人可以用俗語說,向我解釋爲什麼一種方法有效,另一種方法沒有,並且闡明瞭爲jQuery函數加前綴的最佳方式。

非常感謝。

編輯 爲了進一步闡明,我的項目基於Wordpress並使用了幾個「插件」。其中一個可能導致問題並「重新定義」$(根據迄今爲止的答案/評論,我猜測已經發生)。我將根據這些新知識深入研究這個問題,並研究jquery.noConflict()函數,以瞭解在這種情況下如何實現它。謝謝大家的出色幫助。

+1

您是否使用Jquery以外的任何JS框架? – lawphotog

+1

'$ === jQuery',所以我能看到這種情況發生的唯一方法就是如果你在重新定義'$'的jQuery之後包含了代碼。 – JohnnyHK

+0

您是否正在使用另一個也可以使用「$」作爲函數名稱的庫? –

回答

2

找到$發生了什麼的唯一方法是打開Dev Console並鍵入$。然後調查API中的內容,找出它指向的庫。 jQuery默認使用$,所以它必須在某處被覆蓋。

+3

爲了擴大這個答案:許多其他庫也使用'$',所以這種情況很常見。實際上,jQuery甚至提供了一個'jQuery.noConflict()'方法,它故意重置'$'的值。你有可能在某個地方打電話嗎? –

+0

@Elliot我剛剛完成搜索,並在我的項目中的幾個地方找到了noConflict調用。這是一個Wordpress項目,因此它被用於3個不同的「插件」。我會通過Google的noConflict調用來了解更多信息。感謝您的信息。 –

相關問題