2010-01-16 32 views
16

我收到以下錯誤

Uncaught TypeError: Property ' $ ' of object [object global] is not a function in line 2:

使用下面的代碼:

$(document).ready(function() { 
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } }); 
    $('#featuredvid > ul').tabs(); 
}); 

這個問題似乎只在127.0.0.1本地的,而同樣的代碼行在線!我眼花繚亂,有什麼想法?

+0

第2行:是$(tabs ..) $(document).rea dy(function(){('#tabs> ul')。tabs({fx:{opacity:'toggle'}}); \t $('#featuredvid> ul')。tabs(); }); – Olivers 2010-01-16 22:28:03

+0

看來,jQuery沒有加載。 – Gumbo 2010-01-16 22:31:02

+0

我怎麼知道? – Olivers 2010-01-16 23:48:37

回答

1

可能是一個瀏覽器安全設置,阻止JS在本地運行,您是否正在使用IE? 嘗試使用Firefox或與您的安全設置一起玩在IE瀏覽器

+0

謝謝,但不是這種情況....嘗試w。 FF和Chrome只是順便說一句。 – Olivers 2010-01-16 23:53:23

2

是jQuery本地提供嗎? (你通常提到的錯誤意味着jQuery是不可用 - 加載)

也許你是從相對路徑加載它和結構,是網絡版的不同..

+0

nope,使用stg的相同絕對路徑,如 的標題 Olivers 2010-01-16 23:52:22

0

這可能是版本jQuery或這些行的東西。我有這個確切的問題 - 我使用jQuery的本地副本(版本1.3.2),然後切換到http://code.jquery.com/jquery-latest.pack.js,突然它的工作(最新在當時是1.4.1)。

我還提到了一些關於「資源解釋爲腳本,但是以MIME類型text/plain傳輸」的問題。我認爲這是可以忽略的這個問題,因爲它仍然顯示出來,即使我的JavaScript正在工作。

16

檢查您正在使用的任何其他腳本是否調用jQuery.noConflict()。這樣做會釋放$綁定,從而導致$符號未定義。解決這個問題

的方法之一是增加$爲您的回調函數的第一個參數:

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

這工作,因爲全球jQuery對象作爲第一個參數傳遞給.ready()處理程序通過。另請參見http://api.jquery.com/ready/

+2

感謝您指出'.noConflict()'衝突 – garromark 2012-12-08 21:11:26

35

我在嘗試使用slide effect時遇到了此錯誤,我認爲它是jQuery的一部分,但實際上是一個jQuery UI效果。這是我的控制檯輸出:

Uncaught TypeError: Property '#<Object>' of object #<Object> is not a function 

所以,對我來說,似乎你只需要包括jQuery UI庫。在包含jQuery之後添加此行。

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
+0

這正是我的問題。 5分鐘浪費:) – codinghands 2012-01-27 22:07:00

+0

在我的情況下,它是一個小鬼 - 一個隱藏的角色! – 3zzy 2012-08-30 15:03:19

+0

這也是我的問題。謝謝您的幫助。 – 2013-11-08 08:41:04

11

使用這個代替:

jQuery(document).ready(function($){ 
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } }); 
    $('#featuredvid > ul').tabs(); 
}); 
6

我有幾乎同樣的問題。該錯誤消息說

TypeError: $ is not a function 
$(document).ready(function() { 

在我的代碼,被扔錯誤的代碼行是這樣的:

$(document).ready(function(){ 

在我的情況的問題是,$沒有被識別爲jQuery的。我不得不用關鍵字jQuery替換$。所以最後我改變我的代碼是這樣的:

jQuery(document).ready(function(){ 

它的工作。

3

我得到了同樣的錯誤,並通過我的腳本添加

var $ = jQuery; 

爲全局變量

1

簡單地解決這個問題,使用以下命令:

jQuery(function() { 
    //Your code when document will be ready 
}); 
0

禁用彈出式窗口攔截爲我工作

相關問題