IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonctions non définies avec plusieurs fichiers .js


Sujet :

JavaScript

  1. #1
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Fonctions non définies avec plusieurs fichiers .js
    bonjour à tous,

    j'ai une page html, qui est lié à un fichier javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script  src="scripts/main4.js"></script>
    .

    Ce code me permet de construire des "div" dans ma page html, avec l'appel à deux fonctions, quand on survole une div ou qu'on en sort, contenues également dans ce fichier .js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // creer les blocs matière
          function creer_div() {
     
             for (var i=0; i<3; i++) {                  // choix de la table "classe&matière"
                var j=0;                            // init ref des leçons (lecon 0)
                table_source[i].forEach(element => 
                         {
                            // ATTENTION UTILISER LES CARACTERES BACKTICK DE WINDOWS : ALTGR + TOUCHE 7 DU CLAVIER ALPHANUMERIQUE
                            var mon_test =       
                                        ` <a href="${element.lien}">
                                              <div class="libellé change fin" onmouseenter =  "show_vignette(${i},${j})" onmouseleave=" kill_vignette()">
                                                 ${element.titre}
                                              </div>
                                        </a>`
                            document.querySelector("#bloc"+i).insertAdjacentHTML("beforeend", mon_test);
                            j++;
                         });
             }
          }
    Cela fonctionne et les fonctions sont bien appelées à l'entrée et à la sortie de chaque div ainsi construite.

    Dans un second temps, je désire complexifier mon code et fonctionner en ajoutant un autre fichier .js.

    J'ai donc modifié la balise de script de mon fichier html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script  type="module" src="scripts/main4.js"></script>
    j'ai créé un fichier structure.js, avec une fonction "structurer()", précédée du mot clé "export".

    J'ai ajouté l'import dans mon main4.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import {structurer} from "./structure.js";

    Probème
    L'appel à la fonction "structurer()" du fichier "structure.js" fonctionne bien mais les appels provenant des balises html ne fonctionnent plus. il semble que le fait d'avoir mis deux fichiers .js entraine une confusion à l'appel, et les fonctions ne sont plus vues :

    Uncaught ReferenceError: show_vignette is not defined
    onmouseenter http://127.0.0.1:5500/menu4.html:1
    menu4.html:1:1
    onmouseenter http://127.0.0.1:5500/menu4.html:1

    Il semble que ce soit un problème de contexte qui n'est plus implicite, mais je tourne autour du pot sans résoudre le problème....

    Merci à tous ceux qui auront la solution, pour que mes appels sur "onmouseenter" et "onmouseleave", soient à nouveau orientés vers mes deux fonctions, dans le contexte d'un script en plusieurs fichiers....

  2. #2
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut changement d'approche
    Au lieu de "mélanger" un lien et une div,
    j'ai utilisé des div sur lesquels j'utilise le "onclick" pour réagir et cela fonctionne très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction non définie (alors qu'elle l'est) - Cocher toutes les cases
    Par navis84 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/09/2006, 12h02
  2. Réponses: 13
    Dernier message: 01/06/2006, 17h20
  3. Réponses: 2
    Dernier message: 01/06/2006, 14h54
  4. fonction non définie
    Par ston dans le forum Access
    Réponses: 11
    Dernier message: 12/12/2005, 16h02
  5. [linux][gcc] Comment travaille t-on avec plusieurs fichiers?
    Par kaygee dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/04/2004, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo