2011-06-29 140 views
0

我正在为许多人使用的ASP.NET Web应用程序编写一个JavaScript文件。该文件将使用jQuery,这样保证我可以放心地使用$别名,该文件的结构是这样的:未定义jQuery

(function ($) { 
    // My javascript here can safely use the $ alias 
})(jquery); 

然而,我的Firebug控制台显示“jQuery是没有定义”的错误。我确定此文件的脚本标记之后是jQuery的脚本标记,但很明显,此脚本在jQuery准备好之前正在运行。

如何确保脚本在jQuery准备好后运行?

+7

难道你没有输入一个小写的'jquery'吗? –

+1

要扩展@ meder的(** + 1 **)注释,最后一行应该是:['})(jQuery);'](http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Referencing_Magic_-_Shortcuts_for_jQuery) –

+0

尝试'jQuery'的情况下很重要 – Endophage

回答

6

Javascript中的标识符区分大小写。

变量jquery不存在,但jQuery呢。

(function ($) { 
    // My javascript here can safely use the $ alias 
})(jQuery); 

为了解决你的疑惑时,脚本执行约:

脚本的执行等待被加载外部脚本。

在浏览器在页面稍后继续执行脚本之前,将始终加载并执行jQuery脚本。 (当然,除非jQuery脚本不能完全加载。)

+1

我会补充:确保jquery插入到脚本之前;) – meo

+0

D'oh!是的,这是一个区分大小写的问题。这是复制和粘贴代码时可能发生的情况。非常感谢! – Roger