Почему в отчете об ошибке Firebug говорится: jQuery ("# ​​accordion"). Accordion не является функцией? - PullRequest
0 голосов
/ 19 сентября 2010

Я занимаюсь разработкой веб-приложения с использованием Joomla Framework.Аккордеонная функция 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 голосов
/ 19 сентября 2010

Несколько мыслей:

  1. Как выглядит HTML с источником быстрого просмотра? (Ctrl + U в FF и Chrome) Файлы javascript загружаются в правильном порядке?

  2. Файл javascript пользовательского интерфейса JQuery, на который ссылается jquery-ui-1.8.4.custom.min.js, может не содержать объявление класса для компонента пользовательского интерфейса Accordion. Попробуйте загрузить полную библиотеку JQuery UI из CDN (здесь Microsoft: http://ajax.microsoft.com/ajax/jquery.ui/1.8.5/jquery-ui.min.js) и посмотрите, исправит ли это ошибку.

...