2012-01-19 140 views
1

我在Joomla工作,并想添加一个jQuery脚本。我的index.php看起来是这样的:jQuery没有加载或加载两次

<script> 

    if (typeof jQuery == 'undefined') 
    { 
     var script = document.createElement('script'); 
     script.type = "text/javascript"; 
     script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
    } 

</script> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> 
<script type="text/javascript">var $j = jQuery.noConflict();</script> 
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/myjqueryscript.js"></script> 

我所试图做的是加载jQuery的时候有没有其他的jQuery已经加载,如果已经有一个不加载它。

回答

2

你应该等到jQuery加载到页面上之后再使用它。尝试这个。

function ScriptLoaded(){ 
    alert('jQuery Loaded'); 
} 

if (typeof jQuery == 'undefined') { 
    var script= document.createElement('script'); 
    script.type= 'text/javascript'; 
    script.onreadystatechange= function() { 
     if (this.readyState == 'complete'){ 
      ScriptLoaded(); 
     } 
    } 
    script.onload= ScriptLoaded; 
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"; 
    document.getElementsByTagName('head')[0].appendChild(script); 
} 

DEMO

+0

我已经尝试过了,这是行不通的。我应该如何等待,直到jquery被加载?我已经尝试了这么多的命令,似乎没有任何工作,但直接加载jquery。 – user1159265

+0

@ user1159265 - 检查我编辑的答案我已修复它,并添加演示提琴http://jsfiddle.net/RgAg3/。 – ShankarSangoli

+0

感谢您的回答Shankar。它仍然没有工作。 如果另一个扩展是启用(加载它自己的jQuery的那个),everythink工作正常。但是,如果我禁用扩展,我的脚本不工作(但我仍然得到jquery加载的消息)只有当我加载jquery直接。 我该怎么办? – user1159265