|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : janvier 2005 Messages : 23 ![]() |
Bonjour,
voici mon soucis : je dispose de 2 fichiers javascript utilisant tous les 2 la bibliotheque JQuery. Je souhaiterais appeler une fonction du premier fichier dans le 2nd mais cela ne marche pas. Pourriez-vous me dire pourquoi et s'il y a une solution ? Par avance merci. Voici un exemple de ce que je cherche à faire : (les 2 fichiers sont bien exportés par le fichier HTML "maitre") Fichier1.js Code :
Fichier2.js Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Mathias PhilippeDéveloppeur Web Inscription : septembre 2011 Messages : 75 ![]() |
Tu utilises deux closures différentes, c'est normal. Il faut que tu déclares la première fonction en variable globale, remplaces la ligne 7 par :
Code :
alertErrorMessage = function (sTexteMessage) |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2005 Messages : 23 ![]() |
Arf Javascript et ses closures, c'est le truc que j'ai toujours eu du mal à comprendre....
Merci en tout cas MrPringle pour ta réponse. Pourquoi lorsque je met "var" devant la ligne que tu me proposes en tant que correctif, cela ne marche plus ? Lorsque je déclare la fonction en dehors de la closure, cela marche correctement mais est-ce bien propre de déclarer une fonction dont le code utilise jquery et jquery-ui en dehors de la closure de jquery ? Aurais tu un bon article à me conseiller pour comprendre clairement ces closures ? Car en cherchant sur le net, on trouve un peu tout et n'importe quoi... ca me semble pas vraiment complet Merci encore. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Mathias PhilippeDéveloppeur Web Inscription : septembre 2011 Messages : 75 ![]() |
Si tu mets "var", la fonction est déclarée dans la closure (fonction jQuery contenante), si tu l'omets, elle est déclarée globalement, dans l'objet window et est donc accessible par tous tes scripts.
Il est déconseillé d'utiliser les variables globales pour des raisons de compatibilité entre les scripts, mais tu peux le faire, n'en abuse pas. Si tu utilises beaucoup de variables globales, le mieux est de les regrouper dans un objet. Je vais me permettre de faire mon auto-promo, j'avais écris un article sur le scope des variables et le hoisting en JS, j'espère qu'il te sera utile. |
|
00
|
|
|
#5 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
Copyright © 2000-2012 - www.developpez.com