2017-04-06 68 views
0

我想写一个检查jQuery的小检查,如果不存在,动态加载一个副本,以便脚本可以由它运行。它设置为不发生冲突,以防其他情况出现时也使用$,然后运行脚本 - 一个小菜单。jQuery在动态加载后无法正确访问?

然而,在实际测试这个jQuery从脚本加载,但未能执行:“jQuery没有定义。”

我知道jQuery必须先使用它的任何函数之前,但有什么办法解决这个问题时,它是动态安装?

(function() { 
    console.log("Loaded"); 
    if(!window.jQuery) { 
     var script = document.createElement('script'); 
     script.type = "text/javascript"; 
     script.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     jQuery.noConflict(); 
    } 
})(); 
+0

如果你的菜单使用jQuery,为什么不在上面的IF中添加菜单代码?代码太多了吗?这里的问题是,你运行一个需要jQuery BEFORE的代码,即使jQuery被加载。 –

回答

1

您不等待脚本加载完毕。

script.onload = function(){ 
    // do whatever 
}; 
+0

就是这样。我意识到这是一个onLoad问题,但是试图将它写入文档。谢谢! – Merlin