【问题标题】:$ is undefined error in jquery$ 是 jquery 中的未定义错误
【发布时间】:2012-02-16 15:04:56
【问题描述】:

我在使用 twitter 引导程序时收到此错误。在 html 中使用它时,我没有收到此错误。我将其转换为 wordpress 主题,现在出现此错误。

<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$('.dropdown-toggle').dropdown()
</script>

我收到这些错误。

  1. bootstrap-dropdown.js 第 72 行上的“$ 未定义”。
  2. "$(".dropdown-toggle").dropdown 不是函数"

非常感谢任何帮助。 谢谢。

编辑: 我试过这个https://stackoverflow.com/a/9301017/759257

并包含最新的 jquery 版本 1.7.1,现在它可以工作了!!

【问题讨论】:

    标签: jquery twitter-bootstrap


    【解决方案1】:

    您以错误的顺序加载脚本。先加载 jQuery,否则引导脚本无法使用。

    【讨论】:

      【解决方案2】:

      你没有按正确的顺序设置它:

      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
      <script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
      <script type="text/javascript">
      $('.dropdown-toggle').dropdown();
      </script>
      

      【讨论】:

        【解决方案3】:

        我假设“bootstrap-dropdown.js”文件是一个 jQuery 插件。如果是这种情况,您需要先加载 jQuery,因此请切换您的 &lt;script&gt; 标签。

        【讨论】:

          【解决方案4】:

          首先调用 jquery.min.js 然后你的 bootstrap-dropdown.js

          因为你的 bootstrap-dropdown.js 在没有 jquery 的情况下运行

          【讨论】:

            【解决方案5】:

            此外,当您在 Wordpress 中使用 JQ 时,您应该将代码包装在

            jQuery(document).ready(function($) {
                // $() will work as an alias for jQuery() inside of this function
            });
            

            Further reading

            【讨论】:

              【解决方案6】:

              我遇到了同样的问题。基本上,我最初是将我所有的 javascript 文件(包括引导程序)预先加载到一个大型包中,如下所示:

                  bundles.Add(New ScriptBundle("~/bundles/jquery-etc").Include(
                              "~/Scripts/jquery-{version}.js",
                              "~/Scripts/jquery-ui-{version}.js",
                              "~/Scripts/bootstrap.js",
                              "~/Scripts/respond.js",
                              [other js files here]))
              

              我在想引导程序是在 jquery 之后加载的,所以应该没问题。没有。所以我将引导程序放入一个单独的包中,如下所示:

                       bundles.Add(New ScriptBundle("~/bundles/jquery-etc").Include(
                              "~/Scripts/jquery-{version}.js",
                              "~/Scripts/jquery-ui-{version}.js",
                              [other js files here]))
              
              
                        bundles.Add(New ScriptBundle("~/bundles/bootstrap").Include(
                            "~/Scripts/bootstrap.js",
                            "~/Scripts/respond.js"))
              

              这导致引导程序在 Jquery 之后加载属性。可能 djb 的解决方案也可以完成这项工作。但这对我有用。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2015-12-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-05-23
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多