2014-04-09 100 views
0

我需要hide/show div jquery在Joomla 2.5中。我列入default.php模板*.js文件有:Joomla 2.5,jquery hide()不工作

<?php 
JHTML::script('jquery-1.11.0.min.js', 'templates/mytemplate/js/'); 
JHTML::script('bbbx.js', 'templates/mytemplate/js/'); 
?> 

我有一個簡單的div我如default.php模板:

<div class="myclass" id="myid"> 
    <h1>Hallo</h1> 
</div> 

而且我bbbx.js文件看起來像這樣:

$(document).ready(function() { 
     alert("Your alert."); 
     $("div.myclass").hide(); 
}); 

找到bbbx.js文件,警報正在顯示,但hide()不起作用。沒有Joomla,相同的代碼工作得很好。請幫忙,這裏有什麼問題?

+1

你可以提醒'警報(jQuery === $)',並且使用'alert($(「div.myclass」)。')檢查元素是否存在' –

+0

'最有可能'''與另一個碰撞庫,你將不得不使用'noConflict'方法。 –

+0

'alert(jQuery === $)'show'false'and'alert($(「div.myclass」)。length)'根本就沒有出現...... – vogele

回答

0

感謝所有人,我將我的腳本直接添加到了<script></script>標籤的default.php中(現在它在noconflict.js之後加載),並且它現在正在工作。我不知道這是不是Joomla的正確方法,因爲它沒有在http://docs.joomla.org/Adding_JavaScript下列出,但它有效。

0

應該有一個jQuery衝突。 alert()的作品當然是因爲它與jQuery無關。這是一個標準的JavaScript功能。

請嘗試此操作;

var myjq = jQuery.noConflict(); 
//myjq is just a suggestion you may try another word like vogele 

myjq(document).ready(function() { 
    alert("Your alert."); 
    myjq("div.myclass").hide(); 
}); 

此外,您還必須考慮哪個jQuery庫文件首先來。有時,如果您更改<script>標籤的順序,問題就會消失。

+0

它仍然不起作用 – vogele

+0

@vogele你能分享你的HTML輸出通過jsfiddle嗎? – zkanoca