Em Javascript / jQuery o que (e) significa?

Eu sou novo em JavaScript / jQuery e tenho aprendido como fazer funções. Muitas funções surgiram com (e) entre colchetes. Deixe-me mostrar o que quero dizer:

$(this).click(function(e) { // does something }); 

Sempre parece que a function nem usa o valor de (e), então por que ela está lá com tanta frequência?

e é a referência short var para o object de event que será transmitido para os manipuladores de events.

O object de evento tem muitos methods e propriedades interessantes que podem ser usados ​​nos manipuladores de events.

No exemplo que você postou é um manipulador de clique que é um MouseEvent

 $().click(function(e) { // does something alert(e.type); //will return you click } 

DEMO – Mouse Events DEMO usa e.which e e.type

Algumas referências úteis:

http://api.jquery.com/category/events/

http://www.quirksmode.org/js/events_properties.html

http://www.javascriptkit.com/jsref/event.shtml

http://www.quirksmode.org/dom/events/index.html

http://www.w3.org/TR/DOM-Level-3-Events/#event-types-list

ISENÇÃO DE RESPONSABILIDADE: Esta é uma resposta muito tardia para este post em particular, mas como eu tenho lido várias respostas a essa pergunta, percebi que a maioria das respostas usa terminologia que só pode ser entendida por codificadores experientes. Esta resposta é uma tentativa de abordar a questão original com um público novato em mente.

Introdução

O pouco ‘ (e) ‘ é, na verdade, parte do escopo mais amplo de algo em Javascript chamado de function de manipulação de events. Toda function de manipulação de events recebe um object de evento. Para o propósito desta discussão, pense em um object como uma “coisa” que contém um monte de propriedades ( variables ) e methods ( funções ), bem como objects em outras linguagens. O identificador, o ‘ e ‘ dentro da pequena (e) coisa, é como uma variável que permite que você interaja com o object (e eu uso o termo variável MUITO livremente).

Considere os seguintes exemplos de jQuery:

 $("#someLink").on("click", function(e){ // My preferred method e.preventDefault(); }); $("#someLink").click(function(e){ // Some use this method too e.preventDefault(); }); 

Explicação

  • “#someLink” é o seu seletor de elementos (qual tag HTML irá acionar isso).
  • “click” é um evento (quando o elemento selecionado é clicado).
  • “function (e)” é a function de manipulação de events (no evento, o object é criado).
  • “e” é o manipulador de objects (o object é disponibilizado).
  • “preventDefault ()” é um método (function) fornecido pelo object.

O que está acontecendo?
Quando um usuário clica no elemento com o id “#someLink” (provavelmente uma marca de âncora), chame uma function anônima, “function (e)” e atribua o object resultante a um manipulador, “e” . Agora pegue esse manipulador e chame um de seus methods, “e.preventDefault ()” , que deve impedir que o navegador execute a ação padrão para esse elemento.

Nota: O identificador pode muito bem ser chamado qualquer coisa que você quiser (ou seja, ‘ function (billybob) ‘). O ‘e’ significa ‘evento’, que parece ser bastante padrão para este tipo de function.

Embora ‘e.preventDefault ()’ seja provavelmente o uso mais comum do manipulador de events, o próprio object contém muitas propriedades e methods que podem ser acessados ​​por meio do manipulador de events.

Algumas informações realmente boas sobre este tópico podem ser encontradas no site de aprendizagem da jQuery, http://learn.jquery.com . Preste especial atenção às seções Using jQuery Core e Events .

e não tem nenhum significado especial. É apenas uma convenção para usar e como nome do parâmetro de function quando o parâmetro é event .

Pode ser

 $(this).click(function(loremipsumdolorsitamet) { // does something } 

também.

O argumento e é curto para o object de evento. Por exemplo, você pode querer criar um código para âncoras que cancele a ação padrão. Para fazer isso, você escreveria algo como:

 $('a').click(function(e) { e.preventDefault(); } 

Isso significa que quando uma tag é clicada, evite a ação padrão do evento click.

Embora você possa vê-lo com frequência, não é algo que você tenha que usar na function, mesmo que tenha sido especificada como um argumento.

Nesse exemplo, e é apenas um parâmetro para essa function, mas é o object de event que é passado através dela.

Em jQuery e short for event , o object de evento atual. Geralmente é passado como um parâmetro para a function de evento ser triggersda.

Demonstração: events jQuery

Na demonstração eu usei e

 $("img").on("click dblclick mouseover mouseout",function(e){ $("h1").html("Event: " + e.type); }); 

Eu também posso ter usado o event

  $("img").on("click dblclick mouseover mouseout",function(event){ $("h1").html("Event: " + event.type); }); 

Mesma coisa!

Os programadores são preguiçosos, nós usamos um monte de taquigrafia, em parte, diminui o nosso trabalho, em parte, é ajuda na legibilidade. Entender isso ajudará você a entender a mentalidade de escrever código.

Hoje eu acabei de escrever um post sobre “Por que usamos as letras como” e “em e.preventDefault ()?” e acho que minha resposta fará algum sentido …

Em primeiro lugar, vamos ver a syntax de addEventListener

Normalmente, será: target.addEventListener (type, listener [, useCapture]);

E a definição dos parâmetros de addEventlistener é:

type : Uma string representando o tipo de evento para escutar.

listener : O object que recebe uma notificação (um object que implementa a interface Event) quando ocorre um evento do tipo especificado. Este deve ser um object que implementa a interface EventListener ou uma function JavaScript.

(Do MDN)

Mas eu acho que há uma coisa que deve ser notada: Quando você usa a function JavaScript como o ouvinte, o object que implementa a interface Event (evento de object) será automaticamente atribuído ao “primeiro parâmetro” da function. Então, se você usar function (e), o object será atribuído a “e” porque “e” é o único parâmetro da function (definitivamente o primeiro!), então você pode usar e.preventDefault para evitar algo ….

vamos tentar o exemplo como abaixo:

 

Please click on the checkbox control.

o resultado será: [object MouseEvent] 5 e você evitará o evento click.

mas se você remover o sinal de comentário como:

  

você obterá: 8 e um erro : “UnEught TypeError: e.preventDefault não é uma function em HTMLInputElement. (VM409: 69)”.

Certamente, o evento click não será impedido desta vez. Porque o “e” foi definido novamente na function.

No entanto, se você alterar o código para:

  

cada coisa funcionará com propriedade novamente … você receberá 8 e o evento click será evitado

Portanto, “e” é apenas um parâmetro de sua function e você precisa de um “e” em sua function () para receber o “object de evento” e executar e.preventDefault (). Esta é também a razão pela qual você pode mudar o “e” para qualquer palavra que não seja reservada por js.

É uma referência ao object de evento atual