如何知道JQuery是否完成加载
这个问题在这里已经有了答案:
您将不得不编写代码来检测何时加载了动态加载的脚本,不幸的是,它在某些旧版浏览器中的工作方式稍有不同,因此它不像以前那么简单。 这里有一篇很好的参考文章,介绍如何做到这一点:http://www.ejeliot.com/blog/109
以下是该文章的一些代码:
function loadScript(sScriptSrc, oCallback) {
var oHead = document.getElementsByTagName('head')[0];
var oScript = document.createElement('script');
// make sure callback isn't run more than once
function runCallback() {
if (oCallback) {
oCallback();
oScript.onload = oScript.onreadystatechange = null;
oCallback = null;
}
}
oScript.type = 'text/javascript';
// most browsers
oScript.onload = runCallback;
// IE 6 & 7
oScript.onreadystatechange = function() {
if (this.readyState === 'complete') {
runCallback();
}
}
oScript.src = sScriptSrc;
oHead.appendChild(oScript);
}
或者,您可以使用其中一个为您工作的小型库。 你可以在这里看到一些列表:http://microjs.com/#loader。 虽然我不确定你想用另一个库来协助加载你的主库。
尝试onload
事件:
//.....
script.onload = function(){
alert('jQuery is loaded succesfully').
};
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js";
对jfriend的回答赞不绝口。 回调很性感。
第二个裂缝在它。
function loadJQ(callback) {
if(!window.jQuery) {
// Create jQuery script element.
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'path/to/jquery.js';
document.body.appendChild(script);
script.onload = function(){ callback(jQuery); };
// IE 6 & 7 ala jfriend00
script.onreadystatechange = function() {
if (this.readyState == 'complete') callback(jQuery);
}
} else {
callback(jQuery);
}
}
调用
loadJQ(function($){
alert($ === jQuery); // true. jquery is loaded.
});
链接地址: http://www.djcxy.com/p/7345.html