« STIC Discussion:STIC I - exercice 3 (Wall-e) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 51 : Ligne 51 :
  var monBouton = document.getElementById("montrersolution");
  var monBouton = document.getElementById("montrersolution");
  monBouton.onclick = Showinganswers;
  monBouton.onclick = Showinganswers;
====Re: Re: Création d'un événement lié à la souris -- [[Utilisateur:Mattia A. Fritz|Mattia A. Fritz]] ([[Discussion utilisateur:Mattia A. Fritz|discussion]]) 18 novembre 2016 à 10:01 (CET)====
Il vous faudra également déplacer votre script en bas de page comme il est conseillé dans la documentation (avant la balise /body), si non vous avez des problèmes au niveau de l’identification des éléments dans le DOM.
En alternative vous pouvez utiliser un événement "wrapper" du type window.onload, mais déplacer le script en bas de page est la solution la plus simple.

Version du 18 novembre 2016 à 11:01

A propos du contenu du dispositif -- ArthurM (discussion) 10 novembre 2016 à 15:21 (CET)

Bonjour,

Pour cet exercice, je pensais réaliser un questionnaire QCM (avec Javascript, bien sûr) qui porte sur les connaissances exposées dans le dispositif SVG réalisé dans le cadre de l'exercice 2 (et éventuellement d'autres connaissances, pourquoi pas exposées directement sur la page du QCM). Cela est-il conforme aux consignes de l'exercice ? Merci d'avance pour vos éclaircissement.

Re: A propos du contenu du dispositif -- Mattia A. Fritz (discussion) 10 novembre 2016 à 15:49 (CET)

Bonjour,

le sujet est tout à fait pertinent. Par contre, le QCM faut qu'il soit "codé à la main" et non pas généré avec des générateurs de QCM qui créent du code JavaScript. De plus, il faut que votre QCM modifie le DOM (e.g. appraître un feedback, etc.).

Création d'un événement lié à la souris -- ArthurM (discussion) 18 novembre 2016 à 00:14 (CET)

Bonsoir,

Je m'acharne depuis un petit moment sur mon javascript, sans grand succès. J'essaye de créer un événement lié à la souris pour rendre interactifs les boutons de ma page HTML, sans passer par les attributs. Pour ce faire, je me suis référé à cette section du wiki. Cependant, cela ne fonctionne pas, et je ne comprends pas ce que j'ai fait de faux... J'ai téléversé mon dispositif en l'état à l'adresse suivante : http://tecfaetu.unige.ch/etu-maltt/wall-e/meratar0/stic-1/ex3/javascript_pedagogique/

Le deuxième bouton a été traité selon la méthode citée plus haut (le script figure à la toute fin du fichier javascript), mais il ne déclenche pas la fonction associée (déclarée juste au-dessus).

Pourriez-vous regarder ces fichiers et m'expliquer ce qui cloche ? Un grand merci par avance !

Arthur

Re: Création d'un événement lié à la souris -- Mattia A. Fritz (discussion) 18 novembre 2016 à 09:41 (CET)

Bonjour,

lorsque vous associez une fonction en tant que listener, il faut la passer par référence avec son nom sans les parenthèses, car si vous mettez les parenthèses vous faites exécuter la fonction au moment même de lire le code. Depuis le tutoriel que vous citez :

Le gestionnaire d'événement peut être une fonction déjà définie ou anonyme. Il faut cependant faire attention au fait qu'un gestionnaire d'événement est une référence à la fonction et non pas l'exécution de la fonction elle-même. En d'autres termes, il ne faut pas utiliser les parenthèses dans un gestionnaire d'événement :

function faireQuelqueChose() {
    //code
}
mon-element.mon-evenement = faireQuelqueChose; //OK!
mon-element.mon-evenement = faireQuelqueChose(); //Faux, de cette manière la fonction sera exécutée de toute manière, sans attendre l'événement déclencheur

Dans votre code, vous associez le gestionnaire d'événement directement à l’exécution d'une fonction :

var monBouton = document.getElementById("montrersolution");
monBouton.onclick = Showinganswers();

Le code correcte sera donc plutôt :

var monBouton = document.getElementById("montrersolution");
monBouton.onclick = Showinganswers;

Re: Re: Création d'un événement lié à la souris -- Mattia A. Fritz (discussion) 18 novembre 2016 à 10:01 (CET)

Il vous faudra également déplacer votre script en bas de page comme il est conseillé dans la documentation (avant la balise /body), si non vous avez des problèmes au niveau de l’identification des éléments dans le DOM.

En alternative vous pouvez utiliser un événement "wrapper" du type window.onload, mais déplacer le script en bas de page est la solution la plus simple.