为什么Firebug错误报告说:jQuery(“#accordion”)。accordion不是函数?

时间:2010-09-19 02:50:10

标签: jquery user-interface joomla accordion

我正在使用Joomla Framework开发一个Web应用程序。 jQuery UI手风琴功能对我不起作用。 Firebug报告的错误是.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。我相信这可能是错误的来源,但无法解决。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

一些想法:

  1. 使用快速查看源,HTML看起来如何? (在FF和Chrome中按Ctrl + U)javascript文件是否以正确的顺序加载?

  2. jquery-ui-1.8.4.custom.min.js引用的自定义JQuery UI javascript文件可能不包含Accordion UI组件的类声明。尝试从CDN(这里是Microsoft的http://ajax.microsoft.com/ajax/jquery.ui/1.8.5/jquery-ui.min.js)加载完整的JQuery UI库,看看是否能纠正错误。