2017-10-17 11 views
1

Je suis nouveau sur jQuery et javascript. J'essaie quelques choses ici alors laissez-moi vous expliquer ce que j'ai:jQuery Comment rendre une fonction globale? ou Niveau du document?

-J'ai plusieurs fichiers .js séparés exécutant le code. Je ne peux pas les faire charger AVANT le code dans le fichier index.html déclenche. Il charge toujours le fichier jQuery (qui définit la propriété window), puis charge index.html et THEN tous les autres fichiers .js que j'ai avec le fichier principal jQuery. Donc j'essaie de contourner cela.

J'ai mon javascript dans seperated fichiers séparés:
- jQuery.js (mini) // provenant d'une source ajax locale ou principale, cela fonctionne
- mainpage.js // code javascript pour la configuration page principale. C'est là pour les éléments nécessaires, actuellement-rien.
- mainmenu.js // cela charge mainmenu.html qui conatains la liste de menu principal.
- index.html // Le seul code que je veux lancer est de déclarer la classe ".active" au bouton d'accueil. Je le veux dans ce fichier afin que je puisse utiliser le même mainmenu.js universel et mainmenu.html dans tous mes fichiers.
Ceux-ci sont tous déclarés dans la tête de index.html.

Mon problème est qu'il charge jQuery.js charges et il lance immédiatement le javascript de index.html. Je connot comprendre comment déclarer la fonction qui va définir #home comme ".active" Puis-je le déclarer au niveau du document? Je sais que je ne devrais pas le rendre global ... mais je ne sais même pas comment faire cela?
je suis le faire actuellement:

defineactive(){ 
    $(mmlist).find("#home").addClass("active"); 

} 

cependant mmlist n'a pas encore été défini. Cela est déclaré dans mainmenu.js, qui est chargé AFTER index.html

Donc je suppose que ma question est Puis-je déclarer une fonction pour pouvoir être appelé en dehors de la jQuery.js? Sinon, en plus d'utiliser une source/application externe, comment puis-je m'assurer que les fichiers javascript sont chargés dans l'ordre? Je prévois d'utiliser cette idée de manière plus complexe plus tard, donc j'ai besoin que cela fonctionne.

+1

Première question, vos fichiers js 'jquery' dépendent-ils? – Hackerman

+0

oui ils sont. J'ai donc besoin de jQuery pour charger en PREMIER, et c'est le cas. mais je veux alors que mon mainpage.js, mainmenu.js, et d'autres à charger NEXT, et le javascript à la fin de mon index.html (ou d'autres pages Web) pour tirer le dernier. – Jexadox

Répondre

0

pour envelopper votre Essayez code comme:

$(document).ready(function(){ 
// ... Your code ... 
}); 

il sera dirigé par le moment où la page sera chargée.

+0

Je fais toujours ça. n'a pas fonctionné. Selon un autre post cela attend le html à charger mais pas toutes les ressources. Essayer '$ (document) .load (function() {' était censé résoudre ce problème ... mais j'ai essayé aussi en vain. – Jexadox