【问题标题】:Uncaught TypeError: Property '$' of object [object global] is not a function?未捕获的类型错误:对象 [object global] 的属性“$”不是函数?
【发布时间】:2011-01-05 22:51:34
【问题描述】:

我收到以下错误

未捕获的类型错误:对象 [对象全局] 的属性“$”不是函数 在第 2 行:

使用以下代码:

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

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

【问题讨论】:

  • line 2: is $(tabs.. ) of $(document).ready(function() { $('#tabs > ul').tabs({ fx: { opacity: 'toggle ' } }); $('#featuredvid > ul').tabs(); });
  • 好像没有加载jQuery。
  • 呃,现在它也断网了,而之前还可以……也许这是一个提示,Dev-Tools 说:资源解释为脚本,但使用 MIME 类型 text/plain 传输??
  • 好的,添加 到标题和#JavaScript addType application/x-javascript .js 到 .htaccess,如@ 987654321@ 但是,不,不是这样......
  • 它非常不一致:现在本地可以,但在线不行,真的让我很困惑.. 感谢操作系统的任何回复。

标签: javascript jquery


【解决方案1】:

当我尝试使用我认为是 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>

【讨论】:

  • 这正是我的问题。浪费了 5 分钟 :)
  • 在我的例子中,它是一个 gremlin - 一个隐藏的角色!
  • 这也是我的问题。感谢您的帮助。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

    改用这个:

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

    【讨论】:

      【解决方案4】:

      我遇到了几乎相同的问题。错误消息说

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

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

      $(document).ready(function(){
      

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

      jQuery(document).ready(function(){
      

      它奏效了。

      【讨论】:

        【解决方案5】:

        我在选项卡上遇到了同样的错误,在对 jQuery 文档进行了一些挖掘之后,我发现了这个: http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function

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

        【讨论】:

          【解决方案6】:

          我遇到同样的错误并通过添加解决它

          var $ = jQuery;
          

          作为我脚本上的全局变量

          【讨论】:

            【解决方案7】:

            jquery 在本地可用吗? (您提到的错误通常意味着 jQuery 不可用 - 已加载)

            可能你是从相对路径加载,结构和网上版本不一样..

            【讨论】:

            • 不,使用 stg 的相同绝对路径,如 header
            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

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

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

                【讨论】:

                  【解决方案11】:

                  禁用弹出窗口阻止程序对我有用

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2015-01-14
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-04-03
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多