Premiers pas en JavaScript
21.3 autres évènements
cuy copyleft
  See You Why?  

 


l'évènement onClick sur un bouton en JavaScript (21.2) | | Exercices sur l'évènement onClick (21.8)

Contenu


JavaScript 1 - Introduction
JavaScript 2 - Commentaires et instructions
JavaScript 3 - Variables
JavaScript 4 - Types de variables
JavaScript 5 - Variables et chaines
JavaScript 6 - Les fonctions
JavaScript 7 - Les fonctions à paramètre unique
JavaScript 8 - Les fonctions à paramètres multiples
JavaScript 9 - L'instruction RETURN dans une fonction
JavaScript 10 - Appel d'une fonction dans une autre fonction
JavaScript 11 - Les variables locales ou globales
JavaScript 12 - Quelques opérateurs mathématiques
JavaScript 13 - ???
JavaScript 14 - L'instruction IF, pour les conditions
JavaScript 15 - L'instruction IF... ELSE..., pour les conditions à deux sorties
JavaScript 16 - Les IF imbriqués et fonction aléatoire
JavaScript 17 - Les conditions complexes
JavaScript 18 - L'instruction SWITCH, en cas de choix multiples
JavaScript 19 - La boucle FOR
JavaScript 20 - La boucle WHILE
JavaScript 21 - Les événements dans la programmation
21.1 JS : Évènements ou événements en JavaScript
21.2 JS : Un exemple onClick sur un bouton ou sur un bouton radio
21.3 JS : Évènements : onMouseover et onMouseout sur image ou sur tableau
21.8 JS : quelques exercices sur l'événementiel chez JS
21.9 JS : un test sur l'événementiel chez JS
JavaScript 22 - Quelques événements : onMouseOver onLoad etc.
JavaScript 23 - Les objets
JavaScript 24 - Créer ses propres objets
JavaScript 25 - Appliquer des méthodes à ses objets
JavaScript 26 - Les tableaux
JavaScript 27 - Différentes façons de créer des tableaux
JavaScript 28 - Propriétés et méthodes applicables aux tableaux
JavaScript 29 - Les méthodes applicables aux tableaux
JavaScript 30 - Méthodes de tris pour tableaux SORT, REVERSE et PUSH
JavaScript 31 - Ajouter des éléments à un tableau en utilisant une boucle
JavaScript 32 - Tecnique pour imprimer les éléments d'un tableau
JavaScript 33 - Lecture de bases de données
JavaScript 34 - Les objets mathématiques
JavaScript 35 - Les objets relatifs aux dates
JavaScript 36 - Les formulaires JS sont des objets
JavaScript 37 - Accès aux éléments d'un formulaire
JavaScript 38 - Validation des entrées d un formulaire
JavaScript 39 - Graphisme et JavaScript

JavaScript 50 - Calculateur d'emprunt
JavaScript 51 - Calendrier perpétuel et options diverses
JavaScript 99 - Documentation


 
 

 
Avec un peu de JavaScript,
n'oubliez pas de rendre vos pages
plus dynamiques et plus interactives.
 

 
 

 
Notre volonté est de rendre cette formation de JavaScript,
disponible le plus rapidement possible.
Le lecteur excusera l'imperfection de ce travail en cours de construction
et pourrait nous informer des défauts rencontrés.

  MERCI
 

 

 

I. Évènements (depuis 1990) ou événements en JavaScript

voir < < < Section précédente

 

II. Évènements onClick sur un bouton ou bouton radio

voir < < < Section précédente

 

III. Autres évènements onMouseover et onMouseout

Comme signalé en début de ce chapitre, les événements peuvent être nombreux et JS vous permettra de réagir correctement à chacun d'eux. Avant de multiplier les exemples dans le chapitre suivant, nous voulons montrer ici une simple interactivité lorsque l'internaute visiteur de vos pages déplace sa souris et survole une image, puis lorsqu'il déplace sa souris dans un tableau.

 

 

A. Exemple : onMouseOver sur une image

Il n'est pas rare de voir sur des sites des images qui changent si l'internaute survole avec sa souris l'une d'elles.

Personne n'ignore plus la manière d'afficher une image :

<img src="../thumbnails/interr7.jpg">,

ce qui affiche :

Pour l'instant, rien d'exceptionnel. On peut balader sa souris sur cette image, rien ne se produit.
Alors que si l'on passe avec sa souris sur la même image ci-dessous, on constate que l'image change...
Essayez, vous verrez... comme elle se décolore subitement (sans reprendre ses couleurs, sniff...)... pas de mystère, au début du chapitre, nous avons parlé d'un évènement détectable par 'onMouseOver', qui se déclenche lorsque l'utilisateur place le pointeur de la souris sur un lien ou tout autre élément ou objet (ici l'image).

<img onMouseOver="" src="../thumbnails/interr7.jpg">, est la manière d'appeler une action (fonction ou méthode) en JS, qui se notera entre les guilles (voir en rouge ci-dessus). Et, comme la seule action est de faire appel à une nouvelle adresse d'une nouvelle image, on devrait noter src="../thumbnails/interr5.jpg" entre ces guilles. Imaginez la tête de votre navigateur qui doit lire ceci :
<img onMouseOver="src="../thumbnails/interr5.jpg"" src="../thumbnails/interr7.jpg"> ; nous, nous vous avons aidé en utilisant des couleurs, mais vous savez qu'un éditeur de texte ne distingue pas les couleurs, tout au plus les meilleurs mettent-ils eux-mêmes en couleurs selon la syntaxe qu'ils reconnaissent... mais, après avoir ouvert les guilles (notées en rouge chez nous), comment votre éditeur trouvera-t-il les guilles fermantes parmi les 5 qui suivent ?

Par défaut, JS décidera que ce seront les premières rencontrées, même si cela n'est pas notre volonté.

Vous connaissez la réponse... si vous avez tout lu jusqu'ici... Dans une séquence précédente, relative aux 'variables chaine ou string', on s'était interrogé concernant la difficulté d'introduire entre guilles un texte qui comprend lui-même des guillemets. La réponse était : remplacer les guillemets intérieurs par un simple quote ou apostrophe... mais ce caractère a aussi un sens particulier en JS, d'où le danger de générer des erreurs dans certains cas de multiples imbrications de guillemets et quotes (avec un exemple extrait de la programmation du menu apparaissant sur la majorité des pages de ce site CUY) :
zlien[z][i]= '<a href = ' + sitemlinks[z][i] + ' class=ejsmenu title="'+ sitemcomm[z][i] +'">' + sitems[z][i] +'</a>';

Comme dans le chapitre précédent, je peux donc utiliser de simples quotes en lieu et place des guillemets (doubles quotes)... mais je dois veiller à ne pas les mélanger...

Nous savons donc qu'il faudra écrire : <img onMouseOver="src='../thumbnails/interr5.jpg'" src="../thumbnails/interr7.jpg">, ainsi plus de confusion...

... sauf que JS lira une nouvelle image, mais il ne saura pas ce qu'il doit en faire... la solution est d'ajouter le mot clé "this." devant le src='...', sans oublier le point (qui doit séparer l'objet de la méthode qu'on lui applique).
Nous essaierons de limiter ici notre explication en disant qu'en JavaScript this se rapporte toujours à l'objet propriétaire de la fonction que nous exécutons, ou plus précisément, à l'objet dont la fonction est une méthode. Ici, l'objet auquel on impose une nouvelle source est l'image interr7.jpg et la méthode à lui appliquer est src. Notre image, accompagnée de son détecteur d'évènement, se notera donc <img onMouseOver="this.src='../thumbnails/interr5.jpg'" src="../thumbnails/interr7.jpg">.

Nous reviendrons sur l'emploi de ce mot clé this. lorsque nous traiterons de la création d'objets, au chapitre 24.

Les guillemets ouvrants de mon instruction ne pourront plus être confondus avec les guillemets fermants de l'instruction onMouseOver... et le this. indique que la nouvelle source de l'image interr7.jpg est interr5.jpg maintenant.

Malheureusement, si vous avez aperçu le changement, vous aurez peut-être regretté qu'elle ne reprenne pas son allure d'origine en la quittant... vos désirs seront des ordres pour moi, il suffisait de me le demander.
En écrivant onMouseOver, on signalait "quand la souris passe sur..." ; pour signaler "quand la souris quitte...", on écrira onMouseOut.

D'où l'instruction finalisée à écrire :

<img onMouseOver="this.src='../thumbnails/interr5.jpg'" onMouseOut="this.src='../thumbnails/interr7.jpg'" src="../thumbnails/interr7.jpg">

Ouf ! Voilà notre image revenue... mais le lecteur attentif aura compris qu'il est possible d'y faire apparaitre une troisième au lieu de faire réapparaitre l'ancienne image... à vous d'essayer... et puis non, c'est si vite fait, essayez ici... vous serez surpris du résultat.

Le lecteur aura donc vite compris que les images doivent être de même dimension pour éviter les désagréments de lecture dus au déplacement de texte.

À moins que vous ne placiez vos images dans un tableau (invisible, donc border='0'), de dimensions minimales qui soient les maximums des hauteurs et largeurs de vos images, comme ici. Ici, la cellule de mon tableau mesure 98 pixels de large sur 158 de haut et contient facilement mes images qui mesurent respectivement 91x149 et 64x96.

 

B. Exemple : onMouseOver et Out sur les cellules d'un tableau

L'évènement onMouseOver est probablement un des plus fréquents lorsqu'il s'agit de détecter un déplacement de la souris sur une zone. Notre propos ici sera de modifier le fond de la cellule si la souris survole cette cellule.

Tout le monde se rappellera des instructions HTML pour construire un tableau :
- les balises qui encadrent le tout : <table>...</table> ;
- autant de paires de balises <tr>...</tr> qu'il n'y aura de lignes dans votre tableau ;
- pour chaque ligne de tableau, autant de paires <td>...</td> qu'il n'y aura de colonnes ;
sans oublier que des paramètres 'colspan' et 'rowspan' peuvent étendre certaines cellules sur plusieurs colonnes et/ou plusieurs lignes.

Les détecteurs d'évènements onMouseOver et onMouseOut détecteront si la souris les survole ou non. On pourrait donc écrire :

<table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td id="1" bgColor="#EEEEEE" onMouseOver="this.bgColor='#F0C0C0'" onMouseOut="this.bgColor='#EEEEEE'">un</td>
    <td id="2" bgColor="#FFFFFF" onMouseOver="this.bgColor='#F0D0D0'" onMouseOut="this.bgColor='#FFFFFF'">deux</td>
    <td id="3" bgColor="#EEEEEE" onMouseOver="this.bgColor='#F0C0C0'" onMouseOut="this.bgColor='#EEEEEE'">trois</td>
    <td id="4" bgColor="#FFFFFF" onMouseOver="this.bgColor='#F0D0D0'" onMouseOut="this.bgColor='#FFFFFF'">quatre</td>
    <td id="5" bgColor="#EEEEEE" onMouseOver="this.bgColor='#F0C0C0'" onMouseOut="this.bgColor='#EEEEEE'">cinq</td>
  </tr>
  <tr>
    <td id="6" bgColor="#CCCCCC" onMouseOver="this.bgColor='#F0A0A0'" onMouseOut="this.bgColor='#CCCCCC'">six</td>
    <td id="7" bgColor="#DDDDDD" onMouseOver="this.bgColor='#F0B0B0'" onMouseOut="this.bgColor='#DDDDDD'">sept</td>
    <td id="8" bgColor="#CCCCCC" onMouseOver="this.bgColor='#F0A0A0'" onMouseOut="this.bgColor='#
CCCCCC'">huit</td>
    <td id="9" bgColor="#DDDDDD" onMouseOver="this.bgColor='#F0B0B0'" onMouseOut="this.bgColor='#DDDDDD'">neuf</td>
    <td id="10" bgColor="#CCCCCC" onMouseOver="this.bgColor='#F0A0A0'" onMouseOut="this.bgColor='#CCCCCC'">dix</td>
  </tr>
</table>

Ce qui donnerait :

un deux trois quatre cinq
six sept huit neuf dix

Le lecteur attentif aura observé que les 'id' étaient inutiles ici, mais notés pour pouvoir distinguer chaque cellule du tableau. Par contre, la coloration différente pour les lignes et les colonnes pourrait être très utile pour la lecture de grands tableaux.

 

 

 

VIII. Exercices relatifs à ces autres évènements

voir suite >>>

 

 

IX. Test relatifs à ces évènements onClick et onMouseOut

voir suite >>>

 

 


l'évènement onClick sur un bouton en JavaScript (21.2) | | Exercices sur l'évènement onClick (21.8)