Chargement de jQuery avant de Javascript dans Joomla 3
Je suis en train d'adapter un composant personnalisé pour Joomla 3. Il s'appuie sur jQuery, dont j'ai déjà chargé en moi. Maintenant qu'il est inclus dans le modèle de base, je n'ai pas besoin de. Cependant, mon code javascript personnalisé qui s'appuie sur jQuery est chargé en premier. Je les charger à l'aide de la forme suivante:
$document = JFactory::getDocument();
$document->addScript( PATH TO SCRIPT);
Correctement les inclut dans la <head>
élément, mais ils sont chargés avant de jQuery.
Certains une recherche rapide révèle abstract class JHtmlJquery
dans libraries/cms/html/jquery.php
mais je ne suis pas sûr de partir lorsque cela est nécessaire.
Comment puis-je modifier l'ordre de chargement de sorte que jQuery est chargé avant mes scripts qui en dépendent? Et puis-je le faire sans tomber dans le code de base?
OriginalL'auteur Benmj | 2012-10-25
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution. Je ne voulais pas à la fois le modèle ainsi que le chargement des composants bootstrap, plus sur des pages qui sont de simples articles de charger certains modules, je ne voulais pas que chaque module de charge bootstrap ainsi.. (je veux dire, c'est un peu ridicule..) j'ai Donc décidé de prendre le bootstrap de la modèle complètement et j'ai construit un système de plugin qui vient de charges bootstrap et puis j'ai mis de l'ordre de chargement du plugin pour le charger en premier. Fonctionne très bien..
OriginalL'auteur Sean McManus
Mario réponse va dans la bonne direction, mais il n'a pas tout à fait le faire. Il s'avère, vous devez inclure le code pour
JHtml::('bootstrap.framework');
au sein de votre composante (et pas seulement les fichiers de modèle) avant le chargement des scripts supplémentaires. J'ai été en utilisant le stock J3 modèle, la proto-étoile, qui comprend le twitter bootstrap dans son modèle index.php.Le code de mon personnalisée view.html.php est maintenant comme suit:
Il se comporte comme prévu et le jQuery et Bootstrap fichiers (
jquery.min.js
,jquery-noconflict.js
, etbootstrap.min.js
) sont inclus dans le<head>
avant mes scripts personnalisés.OriginalL'auteur Benmj
Quel modèle utilisez-vous? En J3 c'est un sentiment commun à charger jQuery plate-forme en bas de la page, de sorte que les pages se chargent plus rapidement. Regardez dans votre modèle pour
JHtml::_('bootstrap.framework'); //Loads the jQuery js scripts
et essayez de charger votre js après ce.
OriginalL'auteur McRui
Joomla probablement écrit les scripts et les fichiers css inclus dans le
$document->addScript( PATH TO SCRIPT);
manière dans l'ordre où ils sont ajoutés par l'exécution de composant et module de code.J'ai cherché un peu mais je ne pouvais pas trouver un moyen d'influencer le chargement de séparer les déclarations ou jQuery. Mais je peux proposer une autre solution.
Je ne peux pas dire que je suis certain que ce sera LA solution à votre problème, parce que je n'ai pas la moindre idée de ce que votre code ne, ou quand il faut faire quelque chose. Donc, je suis venue dans la plus large à corriger d'éventuels 😉
Cela va fonctionner, aussi longtemps que votre code n'avez pas à être actif avant que la page prêt.
Envelopper votre code personnalisé dans un js sur prêt déclaration, de sorte qu'il ne fera rien jusqu'à ce que la page ( et, par conséquent, jQuery a été chargé ).
OriginalL'auteur Mark Vink