在jQuery include之后的代码中,'$未定义'

时间:2011-01-17 16:08:46

标签: javascript jquery

我在我的JavaScript中为我的一个javascript文件中的以下行获取了熟悉的“$ is not defined”错误...

$(document).ready(function() { … }

通常这是因为我忘了包含jQuery,但这次不是!我已经包含它,它是页面中的第一个包含它。此错误发生在包含的JavaScript文件中,也发生在标记内的任何代码中,所有这些错误都来自 jQuery包含之后。它也不会一直发生,也许是刷新页面的一半时间。

我也经常使用jQuery,以前从未见过这个,所以我很困惑。

编辑: 查看Firebug中的Net选项卡,正在请求jQuery,我收到200响应,但在响应正文中没有发回任何内容。如果我直接在新标签中打开文件或其他什么,我会得到一个空文档。 Firefox似乎认为该文件已缓存但数据大小为0.缓存控制是“无缓存”。困惑。

编辑2: 在VisualStudio中打开jQuery文件,保存jQuery文件,无需修改,现在一切正常。仍然完全困惑。

2 个答案:

答案 0 :(得分:3)

确定 jQuery实际上是否已加载到浏览器中?听起来确实不是这样。您应该使用FirebugFiddler检查所有http请求,看看它是否实际被下载。

以下是如何使用Firebug进行检查的屏幕截图。 alt text

答案 1 :(得分:2)

您使用的是Wordpress还是某种CMS?如果是这样,他们的jQuery版本可能会在最后调用jQuery.noConflict()的代码。您可以在此处阅读此方法:http://api.jquery.com/jQuery.noConflict/

这意味着只要您想使用$功能,就需要使用jQuery

例如......

而不是

$("p").addClass("awesome");

你会做

jQuery("p").addClass("awesome").