未捕获的ReferenceError:使用$(document).ready时未定义$

时间:2012-08-15 22:40:23

标签: javascript jquery asp.net

我正在使用Foundation CSS框架,它在页脚中加载jQuery。这不是许多非典型和推荐的做法。但是,我需要在页面中编写脚本。使用文档就绪可以解决问题,但我仍然遇到错误。为什么呢?

$(document).ready(function(){
    // My Code
    var a;
    $(#id).dosomething({
    // Doing Something
    });
});

在身体关闭标记之前:

<script src="scripts/jquery-1.8.0.min.js"></script>
// More Scripts
</body>

但我收到标准错误“Uncaught ReferenceError:$ is not defined”(4x因为我体内有4个脚本)。此外,我无法在脚本调用之上移动jQuery引用,因为它与其他脚本冲突。我无法在jQuery引用下移动脚本调用。

2 个答案:

答案 0 :(得分:4)

  

使用文档就绪可以解决问题,但我仍然遇到错误。为什么呢?

我觉得你误解了。您可以使用$(document).ready来注册一旦读取DOM就应该执行的代码,这通常是您想要操作DOM的时候。 $在这里是jQuery,所以显然必须在调用$(document)...之前加载它。

  

我无法在脚本调用之上移动jQuery引用,因为它与其他脚本冲突

也许你应该使用jQuery.noConflict() [docs]

答案 1 :(得分:1)

它有点旧,但也许它会帮助其他人。 我遇到了同样的错误,这是因为我在 html 页面中的 Jquery CDN 之前加载了我自己的 JS 脚本。 在调用您自己的脚本之前,您必须先调用 JQuery CDN。 <script src = "https: // jquery-link / .../jquery.js" /> 之后 <script src = "/ myfoder / myscript.js />