“JQuery”未定义
我正在使用本地文件系统设置创建的ASP.net项目。 我正在使用MVC和Jquery。 当我在调试模式下运行应用程序时,即在ASP.net开发服务器中,Jquery工作正常。 我试图在IIS 7中托管应用程序。在托管模式下,它无法识别Jquery并提供脚本错误“Jquery未定义”。 两种模式下脚本文件的位置都保持不变。 任何人都可以找到可能的原因以及如何解决这个问题。
我的代码看起来像这样;
//this hides the javascript warning if javascript is enabled (function($) { $(document).ready(function() { $('#jswarning').hide(); }); })(jQuery);
….
尝试使用Firebug’Net’选项卡查看文件是否已加载。
您还可以将Firebug配置为在所有错误上失败,并查看错误何时发生,与jQuery加载时相比。
0我不知道你们是否找到了问题的解决方案。 我遇到了同样的问题并且疯狂地弄清楚为什么我在使用的插件上得到“jQuery is undefined”错误。 我尝试了从互联网上获得的所有解决方案,但没有运气。
但是,突然有些东西在我脑海中浮现,可能是脚本文件应该是有序的。 所以,我把jquery引用到第一位置,一切都开始像魅力一样。
请记住,如果您使用任何带有jquery的插件,请确保使用以下命令设置对这些fiels的引用。
- 引用jquery库
- 引用其他后续插件(依赖)库等等……
例如:
- “script src =”js / jquery-1.3.2.min.js“type =”text / javascript“…
- “script src =”js / jqDnR.min.js“type =”text / javascript“…
- “script src =”js / jquery.jqpopup.min.js“type =”text / javascript“…
- “script src =”js / jquery.bgiframe.min.js“type =”text / javascript“…
始终确保必须先将jquery引用放在后面的库中。
希望,这可以解决您的问题,尤其是当您使用MasterPages时。 非常奇怪的是,无论你在不使用MasterPages时使用的是什么顺序,它都可以工作,但是当你这样做时,它会以某种方式确定正确的顺序。
祝你好运,编码愉快,
Vincent D’Souza
使用FIrebug之后,我发现找不到文件,因为文件的相对路径没有工作。 要解决此问题,我们应该使用Url.Content方法重新启动路径。 例如:
您也可以尝试让Google为您托管jQuery:
这将避免不必担心脚本的相对路径,避免服务器上的负载,并且对于用户(可能已经在浏览器的缓存中的某个位置)可能会更快。
我通过页面中的JavaScript版本与项目中的版本不匹配得到了消息。
在页面上:
项目中的实际版本: jquery-1.4.1 .min.js
使用Firebug进行诊断,并将其设置为显示所有错误,如接受的答案中所述。
Jquery
你的意思是jQuery
?
Javascript区分大小写。 Jquery
与jQuery
。
要详细说明“text / javascript”答案,“application / javascript”将在firefox中运行并加载jQuery就好了。 但是,它不会在IE中加载文件。 使用“text / javascript”:
Raja是对的,URL.Content有效。
此外,为了防止您在将应用程序迁移到IIS服务器时感到惊讶,请不要使用Web开发服务器,而是在开发时使用IIS。
您可以通过编辑Web属性直接从visual studio使用IIS:
- 转到“网络”标签
- 选中“使用本地IIS Web服务器”
- 点击“创建虚拟目录”
- 转到IIS管理器以禁用创建的虚拟目录中的匿名访问(如果适用)。
如果您从服务器加载cdn和本地脚本中的jQuery,则会发现此错误的另一个原因。 它们是独立加载的,所以如果本地脚本在jQuery之前完成它也会在之前执行,这给了我们可爱的错误。 如果jQuery不在browsercache中,这特别是一个问题,因此您可能会在脚本第一次加载并在以后消失时看到此错误。
对我来说,当我的一些代码中存在真正的Javascript错误时,通常会发生此错误。 这可以防止jQuery.js文件被完全解析。 在Firebug,Safari或其他调试友好的浏览器中查看错误控制台。
常见的错误是在Jquery.js之前首先包含其他Jquery脚本(Jquery.validation.js)
当您有错误的HTML或JavaScript时,通常会发生这种情况。
如果您的javascript中没有错误(例如:缺少括号),那么它要么不包含jQuery文件,要么在该文件加载之前尝试运行一些依赖于jQuery的代码。
路径错了。 仔细检查一下。
如果所有其他方法都失败,请确保该文件具有正确的权限集。 这恰好发生在我身上!
您可以右键单击目录中的文件并在其中设置权限,也可以在Visual Studio中创建另一个.js文件,然后复制并粘贴内容。 工作就像一个魅力。 🙂
将我的问题/解决方案添加到这个长列表中……
我使用Windows 2003在IE7中测试该站点。 该网站很好,但jQuery根本没有运行。 所以我直接去了http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js , 发现ajax.googleapis.com不在安全网站列表中 。 添加* .googleapis.com后一切正常。 愚蠢的疏忽,但也许这会帮助处于类似情况的其他人。
尝试
我通过在_Layout.cshtml中取消注释jQuery引用来解决这个问题。 重新启动网站后,一切都开始工作。
正确! 我已经追了好几天了,当你在VS中从头开始使用一个新的MVC项目时,它在Layout.cshtml页面中有自己对JQuery的引用。 如果您尝试在页面中引用JQuery,它将被Layout.cshtml页面中的引用覆盖。 注释母版页(Layout.cshtml)中的代码,它将使用您的页面引用。