2011-06-02 16 views
5

Intenté incluir JQuery lib en joomla pero no funciona. Muchos comps y módulos usan mootools dentro de mi CMS. Creo que el problema es un conflicto entre los dos marcos.JQuery no funciona porque Mootools ya está cargado en joomla

He buscado en Internet y encontré algunos artículos, pero el siguiente código todavía no está funcionando como se esperaba.

<?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'); 
?> 

Esto debería ordenar mi tabla usando JQuery pero no es así.

¿Cómo uso mootools y jQuery al mismo tiempo en joomla?

Gracias de antemano por su ayuda!

Respuesta

3

La lectura de su código, veo esto:

$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'); 

pero debería tener este aspecto:

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();});"); 

Ahora, he aquí por qué:

Javascript se interpreta en el orden que viene a la página. Se le dice a la página que use jQuery.noConflict() y la tabla de datos jQuery, antes de que sepa cuáles son esas cosas.

+0

Muchas gracias @jcolebrand! ¡Realmente me ayudó a solucionar mi problema! –

+0

luego 'desconcomiendo // $ document-> addScriptDeclaration ($ noConflict); 'línea –

+0

Además, ¿podría decirme cómo agregar un atributo a la etiqueta en joomla usando JHTML? Necesito cambiar su clase así '' body id = "dt_example" class = "ex_highlight_row"> ' –

Cuestiones relacionadas