web-dev-qa-db-fra.com

Modification de l'ordre du javascript lors du chargement

J'ai écrit mon propre modèle et une partie du contenu est la suivante:

<?php
// Add JavaScript Frameworks
JHtml::_('bootstrap.framework');
// Add Stylesheets
JHtmlBootstrap::loadCss();
// Load optional rtl Bootstrap css and Bootstrap bugfixes
JHtmlBootstrap::loadCss($includeMaincss = false, $this->direction);

?>
    <jdoc:include type="head" /> 

Pour un fichier spécifique, je dois charger deux fichiers javascript nécessitant jQuery.

$document = JFactory::getDocument();
$document->addScript('js/jquery.uitablefilter.js');
$document->addScript('js/filterTable.js');

Même s’ils sont chargés avant jQuery. il y a beaucoup de questions sur ce problème et beaucoup de réponses aussi mais il charge toujours les javascripts avant jQuery.

Je ne sais pas quelle est la raison et comment surmonter.

2
zkanoca

Vous devez (pré) charger les frameworks et vos propres fichiers JavaScript dans le bon ordre dans vos extensions. Le modèle est trop tard et rien n'est chargé par défaut.

Exemple pour le fichier tmpl d'un module:

JHtml::_('bootstrap.framework'); // alternative only JQuery JHtml::_('jquery.framework');

JHtml::script('mod_yourmodule/yourmodule.js', false, true, false, false, false);

$document = JFactory::getDocument();
$document->addScriptDeclaration('
    jQuery( document ).ready(function(){
        alert(\'I am an alert box!\');
    });
');
1
schnuti

Avez-vous envisagé d'essayer ce qui suit?

<jdoc:include type="head" />
<script src="js/jquery.uitablefilter.js" />
<script src="js/filterTable.js" />
0
Lodder