JQuery не работает, потому что Mootools уже загружен в Joomla - PullRequest
5 голосов
/ 02 июня 2011

Я пытался включить библиотеку JQuery в joomla, но она не работает. Многие компы и модули используют mootools внутри моей CMS. Я думаю, что проблема - конфликт между этими двумя структурами.

Я искал в Интернете и нашел несколько статей, но следующий код все еще не работает должным образом.

<?php
JHTML::stylesheet('demo_page.css', 'media/system/css/');
JHTML::stylesheet('ftab.css', 'media/system/css/');
JHTML::stylesheet('demo_table.css', 'media/system/css/');
$option="com_mycomp";
$base=JUri::root().'components/'.$option.'/js/';
$document=&JFactory::getDocument();
$noConflict="jQuery.noConflict();";
//$document->addScriptDeclaration($noConflict);
$document->addScriptDeclaration("jQuery(document).ready(function($){jQuery('#example').dataTable();});");
JHTML::script('jquery.js',$base,true);
$document->addScript($base,'jquery.js');
$document->addScript($base,'jquery.dataTables.js');
?>

Это должно отсортировать мою таблицу с использованием JQuery, но это не так.

Как мне одновременно использовать mootools и jQuery в Joomla?

Заранее благодарю за помощь!

1 Ответ

3 голосов
/ 02 июня 2011

Читая ваш код, я вижу это:

$noConflict="jQuery.noConflict();";
//$document->addScriptDeclaration($noConflict);
$document->addScriptDeclaration("jQuery(document).ready(function($){jQuery('#example').dataTable();});");
JHTML::script('jquery.js',$base,true);
$document->addScript($base,'jquery.js');
$document->addScript($base,'jquery.dataTables.js');

но оно должно выглядеть так:

JHTML::script('jquery.js',$base,true);
$document->addScript($base,'jquery.js');
$document->addScript($base,'jquery.dataTables.js');
$noConflict="jQuery.noConflict();";
//$document->addScriptDeclaration($noConflict);
$document->addScriptDeclaration("jQuery(document).ready(function($){jQuery('#example').dataTable();});");

Теперь вот почему:

Javascript интерпретируетсяв порядке поступления на страницу.Странице говорят использовать jQuery.noConflict () и таблицу данных jQuery, прежде чем она узнает, что это такое.

...