我必须使用外部js文件才能加载jquery。我的js文件中的代码如下:
document.write('<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>');
(function($) {
$(document).ready(function() {
alert('it works!!');
});
})(jQuery);
在firefox firebug控制台中,我看到了这个错误:“jQuery未定义”,我认为这是因为jQuery库是在我的js文件中的$函数之后加载的。
您对我如何解决此问题有任何疑问吗?如果我从firebug控制台运行脚本,一切正常。
答案 0 :(得分:5)
生成的 您需要在启动尝试使用它的 更改为:<script>
元素将在当前脚本元素后出现,并且在当前<script>
元素的代码完成之后,其中的代码才会执行。< / p>
<script>
之前加载库。<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
(function($) {
$(document).ready(function() {
alert('it works!!');
});
})(jQuery);
</script>
答案 1 :(得分:2)
您在调用时没有加载jquery是正确的。你必须编写一个函数来加载jQuery库,然后才调用你的代码。或者,您可以延迟代码执行,但这不是100%完全证明。
更新。 Link to check if jQuery has been loaded对回拨电话很有用。
答案 2 :(得分:1)
为什么使用document.write
来引入jQuery?只需将<script>
标记直接放在HTML中即可。
答案 3 :(得分:1)
Loading scripts dynamically可能会对您有所帮助。但是,你正在尝试加载,而正在加载页面,这与加载页面时加载它有点不同。
我的建议是一种黑客攻击:
document.write('<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js" onload="loaded()" onreadystatechange="loadedIE()"></script>');
function loadedIE() { //for ie
if(this.readyState == 4){loaded();}
};
function loaded() {
$(document).ready(function() {
alert('it works!!');
});
};
我认为readystatechange
监听器应该有效(它是IE浏览器)。