Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态加载jquery_Javascript_Jquery - Fatal编程技术网

Javascript 动态加载jquery

Javascript 动态加载jquery,javascript,jquery,Javascript,Jquery,我在一个非常扭曲的环境中工作,在这个环境中,我无法通过我使用的MVC框架(Cakephp)的视图逻辑来处理这个问题。这可能是因为我必须在已经加载jQuery脚本的页面中加载这段代码 如果我只是在代码中加载jQuery,只要没有其他jQuery脚本存在,它就可以工作。当有两个脚本时,它不起作用,并表示$不是函数。我不确定这是怎么回事,但解释可能会有所帮助 无论如何,我已经到了将脚本动态加载到页面的地步 这是我的代码: <script id="loadjq" type="text/javasc

我在一个非常扭曲的环境中工作,在这个环境中,我无法通过我使用的MVC框架(Cakephp)的视图逻辑来处理这个问题。这可能是因为我必须在已经加载jQuery脚本的页面中加载这段代码

如果我只是在代码中加载jQuery,只要没有其他jQuery脚本存在,它就可以工作。当有两个脚本时,它不起作用,并表示
$不是函数
。我不确定这是怎么回事,但解释可能会有所帮助

无论如何,我已经到了将脚本动态加载到页面的地步

这是我的代码:

<script id="loadjq" type="text/javascript"></script>
<script id="loadcloud" type="text/javascript"></script>
<script type="text/javascript">
if(typeof jQuery=="undefined"){
    document.getElementById('loadjq').src= 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js';
}
document.getElementById('loadcloud').src= '/js/jqcloud.js';
$(document).ready(function(){
    $("#tagcloud").jQCloud(word_list,{});
});
</script>

if(typeof jQuery==“未定义”){
document.getElementById('loadjq').src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js';
}
document.getElementById('loadcloud').src='/js/jqcloud.js';
$(文档).ready(函数(){
$(“#tagcloud”).jQCloud(单词列表,{});
});
这会加载脚本,但当我尝试加载jqcloud.js时,它找不到另一个脚本,可能是因为它在加载另一个脚本之前运行。通过一些肮脏的技巧,我可以做到这一点,但当我到达
$(document).ready(function()


有没有一种干净的方法可以做到这一点?我需要它在执行之前等待加载以前的脚本,或者至少,这就是问题的症结所在。不确定这是否真的是我的问题。

在jquery脚本元素上设置事件处理程序,以便在加载完成时调用jqcloud脚本。类似于

if(typeof jQuery=="undefined"){
   var loadjqScript = document.getElementById('loadjq').src =
                'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js';
        // Code below handles browser that support script onload 
        // and ones that don't
   var loadFunction = function()  
   {  
      if (this.readyState == 'complete' || this.readyState == 'loaded') {  
           loadJqCloud();   
      }  
   };  
   loadjqScript.onreadystatechange = loadFunction;

   loadjqScript.onload = loadJqCloud;  
}

function loadJqCloud() {
    document.getElementById('loadcloud').src= '/js/jqcloud.js'
 }