错误:“jQuery未定义”,但加载了jquery

时间:2010-11-22 14:28:29

标签: jquery

但尝试操作jquery验证插件1.6,但我在Chrome检查器中收到此错误:

  

未捕获的ReferenceError:jQuery不是   定义。 ------ jquery.validate.min.js:15

我在我的页面中加载了jquery 1.4.4。

有什么想法吗?

此致

哈维

4 个答案:

答案 0 :(得分:8)

您需要确保在验证插件之前首先加载jquery

答案 1 :(得分:0)

确保您不会多次导入jQuery!就我而言,我从

开始在asp.net中的.cshtml视图
<script src="~/Scripts/jquery.js"></script>

然后在我的代码结尾,我忘记了将其遗忘了:

@Scripts.Render("~/bundles/jqueryval")

在页面上多次导入jQuery不会导致任何问题。有关更多信息,请参见this bug report from the jQuery project,但这句话对我来说很突出:

  

[如果您在页面上多次引用jQuery] ...作为jQuery   脚本执行后会重新初始化$和$ .prototype,从而删除所有   现有的插件。主机页面停止工作。

答案 2 :(得分:0)

我只想补充一下,所有所有的.js文件仅一次包含,并且正确的顺序(验证之前的jquery,不引人注意的jquery)对于应用程序的正确运行至关重要。在认真研究之前,我花了2天的调试时间。如果捆绑包带有*来捕获所有文件,它们可以以不可预测的顺序添加.js文件。将捆绑包分成较小的捆绑包,以便您可以控制它们的加载顺序。如果.js文件已加载到_layout中,请不要在单独的视图中再次添加该文件。我希望这对某人有帮助。

答案 3 :(得分:0)

就我而言,我无法控制脚本加载的顺序,因为基本的 jquery 脚本是我扩展的功能的一部分,另外还包含了 jquery.validate。所以帮助我的是 defer 属性,它推迟给定的脚本加载,直到页面被完全解析:

<script defer src="../js/jquery.validate"></script>