Je suis nouveau dans JavaScript / jQuery et j'ai appris à créer des fonctions. De nombreuses fonctions sont apparues avec (e) entre parenthèses. Laissez-moi vous montrer ce que je veux dire:
$(this).click(function(e) {
// does something
});
Il semble toujours que la fonction n'utilise même pas la valeur de (e), alors pourquoi est-elle là si souvent?
Intro
La petite chose « (e) » fait en fait partie d'une portée plus large de quelque chose en Javascript appelé une fonction de gestion d'événements. Chaque fonction de gestion d'événements reçoit un objet événement. Pour les besoins de cette discussion, considérez un objet comme une «chose» qui contient un tas de propriétés ( variables ) et de méthodes ( fonctions ), un peu comme les objets dans d'autres langages. La poignée, le « e » à l'intérieur de la petite chose (e) , est comme une variable qui vous permet d'interagir avec l'objet (et j'utilise le terme variable TRÈS vaguement).
Considérez les exemples jQuery suivants:
Explication
Que ce passe-t-il?
Lorsqu'un utilisateur clique sur l'élément avec l'ID "#someLink" (probablement une balise d'ancrage), appelez une fonction anonyme, "function (e)" , et attribuez l'objet résultant à un gestionnaire, "e" . Maintenant, prenez ce gestionnaire et appelez l'une de ses méthodes, "e.preventDefault ()" , ce qui devrait empêcher le navigateur d'exécuter l'action par défaut pour cet élément.
Remarque: Le handle peut être nommé à peu près comme vous le souhaitez (c'est-à-dire ' function (billybob) '). Le «e» signifie «événement», ce qui semble être assez standard pour ce type de fonction.
Bien que «e.preventDefault ()» soit probablement l'utilisation la plus courante du gestionnaire d'événements, l'objet lui-même contient de nombreuses propriétés et méthodes accessibles via le gestionnaire d'événements.
De très bonnes informations sur ce sujet peuvent être trouvées sur le site d'apprentissage de jQuery, http://learn.jquery.com . Portez une attention particulière aux sections Utilisation de jQuery Core et Événements .
la source
e
n'a pas de signification particulière. C'est juste une convention à utilisere
comme nom de paramètre de fonction lorsque le paramètre estevent
.Ça peut être
ainsi que.
la source
Dans cet exemple, il
e
s'agit simplement d'un paramètre pour cette fonction, mais c'est l'event
objet qui est passé par elle.la source
L'
e
argument est l'abréviation de l'objet événement. Par exemple, vous pouvez créer du code pour les ancres qui annule l'action par défaut. Pour ce faire, vous écririez quelque chose comme:Cela signifie que lorsqu'un utilisateur
<a>
clique sur une balise, empêche l'action par défaut de l'événement de clic.Bien que vous puissiez le voir souvent, ce n'est pas quelque chose que vous devez utiliser dans la fonction même si vous l'avez spécifié comme argument.
la source
Dans jQuery
e
abréviation deevent
, l'objet d'événement actuel. Il est généralement passé en paramètre pour la fonction d'événement à déclencher.Démo: événements jQuery
Dans la démo j'ai utilisé
e
J'aurais pu aussi bien utiliser
event
Même chose!
Les programmeurs sont paresseux, nous utilisons beaucoup de sténographie, en partie cela diminue notre travail, en partie cela aide à la lisibilité. Comprendre cela vous aidera à comprendre la mentalité d'écrire du code.
la source
Aujourd'hui, je viens d'écrire un article sur "Pourquoi utilisons-nous les lettres comme" e "dans e.preventDefault ()?" et je pense que ma réponse aura du sens ...
Dans un premier temps, voyons la syntaxe de addEventListener
Normalement, ce sera: target.addEventListener (type, listener [, useCapture]);
Et la définition des paramètres de addEventlistener sont:
(De MDN)
Mais je pense qu'il y a une chose à remarquer: lorsque vous utilisez la fonction Javascript comme écouteur, l'objet qui implémente l'interface Event (événement objet) sera automatiquement affecté au "premier paramètre" de la fonction. Ainsi, si vous utilisez function (e), l'objet sera affecté à "e" car "e" est le seul paramètre de la fonction (définitivement le premier!), alors vous pouvez utiliser e.preventDefault pour empêcher quelque chose ....
essayons l'exemple ci-dessous:
le résultat sera: [objet MouseEvent] 5 et vous éviterez l'événement de clic.
mais si vous supprimez le signe de commentaire comme:
vous obtiendrez: 8 et une erreur : "Uncaught TypeError: e.preventDefault n'est pas une fonction à HTMLInputElement. (VM409: 69)".
Certes, l'événement de clic ne sera pas empêché cette fois, car le "e" a été de nouveau défini dans la fonction.
Cependant, si vous modifiez le code en:
tout fonctionnera à nouveau correctement ... vous obtiendrez 8 et l'événement de clic sera évité ...
Par conséquent, "e" est juste un paramètre de votre fonction et vous avez besoin d'un "e" dans votre fonction () pour recevoir l '"objet événement" puis exécutez e.preventDefault (). C'est aussi la raison pour laquelle vous pouvez changer le "e" en n'importe quel mot qui n'est pas réservé par js.
la source
C'est une référence à l'objet événement actuel
la source
En référence au code ci-dessus
$(this)
est l'élément qui en tant que variable.click
est l'événement à réaliser.le paramètre
e
est automatiquement passé de js à votre fonction qui contient la valeur de$(this)
value et peut être utilisé plus loin dans votre code pour effectuer une opération.la source