2010-09-19 65 views
0

我正在開發一個使用Joomla框架的Web應用程序。 jQuery UI手風琴功能不適合我。 Firebug報告的錯誤是.accordion不是一個函數。我已經閱讀了很多頁面來解決各種類似的錯誤,但還沒有找到解決方案。爲什麼Firebug錯誤報告會說:jQuery(「#accordion」)。accordion不是函數?

這裏是我的模板我的組件的視圖:

$document =& JFactory::getDocument();  
$document->addScript('/includes/js/jquery-1.4.2.js'); 
$document->addScript('/includes/js/jquery-ui-1.8.4.custom.min.js'); 
JHTML::script('includes/js/pfm_main_ui.js', ''); 
$document->addCustomTag('<script type="text/javascript">jQuery.noConflict();</script>' ); 

這裏是我的包含的JavaScript(pfm_main_ui.js):

jQuery(document).ready(function() { 
    jQuery('#accordion').accordion( 
     { 
      header: "h2" 
     }); 
     }) 

這裏是手機模板中的html:

<div id="accordion"> 
<div> 
<h2><a href="#">Header 1</a></h2> 
<div id="contentPanel_1">...content ... 
</div> 
</div> 
<div> 
<h2><a href="#">Header 2</a></h2> 
<div id="contentPanel_2">...content ... 
</div> 
</div> 
<div> 
<h2><a href="#">Header 3</a></h2> 
<div id="contentPanel_3">...content ... 
</div> 
</div> 
<div> 
<h2><a href="#">Header 4</a></h2> 
<div id="contentPanel_4">...content ... 
</div> 
</div> 
</div> 

其他信息:

的Joomla默認使用MooTools的,所以我必須調用jQuery.noConflict()使用jQuery。我相信這可能是錯誤來自哪裏,但無法解決。任何幫助深表感謝!

+0

我想你錯過了一些包含的js文件。像這樣$ document-> addScript('/includes/js/jquery-1.4.2.js'); 你必須找到具有手風琴功能的文件幷包含該文件。 – 2010-09-19 02:54:34

回答

0

的一點想法:

  1. 什麼是HTML看起來像一個快速的查看源代碼? (FF和Chrome中的Ctrl + U)JavaScript文件是否按正確順序加載?

  2. 自定義JQuery用戶界面JavaScript文件由jquery-ui-1.8.4.custom.min.js引用可能不包含手風琴UI組件類的聲明。嘗試從CDN加載完整的JQuery UI庫(這裏是微軟的:http://ajax.microsoft.com/ajax/jquery.ui/1.8.5/jquery-ui.min.js),看看是否能糾正錯誤。

+0

感謝您的想法。 1.正確的順序應該是什麼?對jQuery.noConflict的調用發生在對手風琴js包含文件的調用之後。在呼叫包含之前,我打電話給noConflict,但Joomla把它放在後面。 2.自定義的jQuery UI文件的工作原理 - 即在查看我自定義下載的jQuery UI附帶的index.html示例文件時,手風琴演示工作正常。所以我認爲類聲明是有效的。 – netefficacy 2010-09-19 03:55:28

+0

已解決。加載完整的jQuery UI庫取得了訣竅。感謝您指點我正確的方向。 – netefficacy 2010-09-19 04:26:20