Ext JS - Learning Center

Manual:Intro:Class Design French

From Learn About the Ext JavaScript Library

Jump to: navigation, search
Summary: Gestionnaires d'événements
Author: Maxence Delannoy
Published: 29/07/2007
Ext Version: 1.1
Languages: en.png English cn.png Chinese fr.png French

En Javascript, les événements (incluant les actions de l'utilisateur comme les mouvements de souris, les frappes clavier ou les réponses à des requêtes Ajax) peuvent survenir à n'importe quel moment.

Pour répondre à ces événements et lancer l'action liée, nous devons fournir un gestionnaire d'événement. La plupart des objets fournissent une méthode nommée on qui permet d'ajouter un gestionnaire d'événement. Le premier paramètre correspond au type d'évenement qu'on souhaite intercepter ("click" par exemple pour les clics de souris). Le deuxième paramètre permet de spécifier la fonction qui sera appelée lorsque l'événement surviendra. Le nom de la fonction est écrite comme une simple référence de fonction (un nom de fonction sans parenthèses). Si on mets les parenthèses, Javascript l'interprète comme un appel de fonction.

Il est important de noter que la variable magique this d'une référence de fonction n'est pas définie par défaut. Si on veut que cette variable pointe vers un objet particulier, il faut le spécifier dans le troisième paramètre de la méthode on.

Dans les exemples suivants, myElement est une instance de la classe Ext.Element.

Correct :

myElement.on("click", myObject.clickHandler, myObject);

Incorrect :

myElement.on("click", myObject.clickHandler(), myObject);

La syntaxe précédente transmet le résultat de l'appel de la fonction clickHandler et non pas la référence à la fonction clickHandler à cause de la présence des parenthèses. Cette exemple peut être valable si la fonction clickHandler renvoit une référence de fonction, mais la plupart du temps ce n'est pas ce que vous comptiez faire.

Le simple fait que la méthode clickHandler soit un membre de l'objet myObject ne suffit pas à définir le contenu de la variable this. Il faut le spécifier explicitement en troisième paramètre. La méthode on vas alors utiliser les méthodes call ou apply de l'objet Function pour définir le contexte dans lequel sera appelé la méthode clickHandler

Pour passer des paramètres à un gestionnaire d'événement, il faut utiliser les méthodes de l'objet Function, c'est-à-dire :

myElement.on("click", myObject.clickHandler.createCallback("foo", {bar:"bletch"}), myObject);

Dans ce dernier exemple, deux paramètres, la chaîne de caractères "foo" et l'objet anonyme contenant la propriété "bar" initialisé à la valeur "bletch" seront passés au gestionnaire lorsque l'événement surviendra.

  • This page was last modified on 29 July 2007, at 11:20.
  • This page has been accessed 1,493 times.