未捕获的TypeError:对象[对象全局]的属性'$'不是函数?

时间:2010-01-16 22:26:43

标签: javascript jquery

我收到以下错误

  

未捕获的TypeError:对象[object global]的属性“$”不是函数   在第2行:

使用以下代码:

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

问题仅出现在127.0.0.1本地,而相同的代码在线确定!我很眼花缭乱,有什么想法吗?

11 个答案:

答案 0 :(得分:35)

当我尝试使用我认为属于jQuery但实际上是jQuery UI效果的slide effect时,我遇到了这个错误。这是我的控制台的输出:

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>

答案 1 :(得分:16)

检查您使用的其他任何脚本是否正在调用jQuery.noConflict()。这样做会释放$绑定,从而导致$符号未定义。

解决此问题的一种方法是添加$作为回调函数的第一个参数:

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

这是有效的,因为全局jQuery对象作为第一个参数传递给.ready()处理程序。另请参阅http://api.jquery.com/ready/

答案 2 :(得分:11)

请改用:

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

答案 3 :(得分:6)

我有同样的问题。错误消息显示

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

我的代码中抛出错误的行是:

$(document).ready(function(){

在我的情况下,问题是$不被识别为jquery。我不得不用关键字jQuery替换$。所以最后我改变了我的代码:

jQuery(document).ready(function(){

它有效。

答案 4 :(得分:3)

我在使用标签时遇到了同样的错误,在jQuery文档中进行了一些挖掘之后,我发现了这个: http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function

一旦我覆盖了jQuery,它就可以工作了。所以看起来我有一些命名空间问题。

答案 5 :(得分:3)

我得到了同样的错误并通过添加

来解决它
var $ = jQuery;

作为我脚本的全局变种

答案 6 :(得分:2)

jquery是否可在本地使用? (你提到的错误通常意味着jQuery不可用 - 加载)

也许您是从相对路径加载它,结构与在线版本不同。

答案 7 :(得分:1)

可能是浏览器安全设置,阻止JS在本地运行,你是否有机会使用IE? 尝试使用Firefox或使用IE中的安全设置

答案 8 :(得分:1)

简单地说,使用以下内容:

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

答案 9 :(得分:0)

它可能是jQuery的版本或类似的东西。我有这个确切的问题 - 我使用的是jQuery的本地副本(版本1.3.2),然后切换到http://code.jquery.com/jquery-latest.pack.js并且突然它起作用(当时最新的是1.4.1)。

我还提到了一些关于“资源被解释为脚本但是使用MIME类型text / plain传输”的问题。我认为可以安全地忽略这个特殊问题,因为即使我的javascript现在正在运行,它仍然会显示给我。

答案 10 :(得分:0)

禁用弹出窗口拦截器为我工作