为什么我得到一个jQuery没有定义错误?

我必须使用外部js文件才能加载jquery。 我的js文件中的代码如下:

document.write(''); (function($) { $(document).ready(function() { alert('it works!!'); }); })(jQuery); 

在firefox firebug控制台中,我看到了这个错误:“jQuery未定义”,我认为这是因为jQuery库是在我的js文件中的$函数之后加载的。

你对我如何解决这个问题有任何想法吗? 如果我从firebug控制台运行脚本一切正常。

你在调用它时没有加载jquery是正确的。 你必须编写一个函数来加载jQuery库,然后才调用你的代码。 或者,您可以延迟代码执行,但这不是100%完全certificate。

更新。 链接以检查jQuery是否已加载对回调调用有用。

生成的元素将出现当前脚本元素之后,其中的代码将在当前元素的代码完成之后才会执行。

您需要在启动尝试使用它的之前加载库。

改成:

   

为什么使用document.write来引入jQuery? 只需将标记直接放在HTML中即可。

动态加载脚本可能对您有帮助。 但是,您正在尝试在加载页面时加载它,这与加载页面时加载它有点不同。

我的建议有点像黑客:

 document.write(''); function loadedIE() { //for ie if(this.readyState == 4){loaded();} }; function loaded() { $(document).ready(function() { alert('it works!!'); }); }; 

我认为readystatechange监听器应该工作(它是一个IE浏览器)。