$是jquery中的未定义错误

时间:2012-02-16 15:04:56

标签: jquery twitter-bootstrap

使用twitter bootstrap时出现此错误。我在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行“$ is undefined”。
  2. “$(”。dropdown-toggle“)。dropdown不是函数”
  3. 非常感谢任何帮助。 感谢。

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

    并包含最新的jquery版本1.7.1,现在它可以正常运行!!

6 个答案:

答案 0 :(得分:34)

您正在以错误的顺序加载脚本。首先加载jQuery,否则它将无法用于引导脚本。

答案 1 :(得分:8)

您没有按照正确的顺序进行设置:

<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>

答案 2 :(得分:4)

我假设“bootstrap-dropdown.js”文件是一个jQuery插件。如果是这种情况,您需要先加载jQuery,然后切换<script>标记。

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

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

Further reading

答案 5 :(得分:1)

我有同样的问题。基本上,我最初是将所有我的javascript文件(包括bootstrap)加载到一个mega-bundle中,如下所示:

    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之后加载所以应该没问题。不。所以我将bootstrap放入一个单独的包中,如下所示:

         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的解决方案也可以完成这项工作。但这对我有用。