我收到以下错误
未捕获的TypeError:对象[object global]的属性“
$
”不是函数 在第2行:
使用以下代码:
$(document).ready(function() {
$('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
$('#featuredvid > ul').tabs();
});
问题仅出现在127.0.0.1本地,而相同的代码在线确定!我很眼花缭乱,有什么想法吗?
答案 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)
禁用弹出窗口拦截器为我工作