2010-06-30 17 views
5

Cuando escribofunción (e) {e.algo ...} ¿Qué es e?

$("#new_lang").click(function(e) 
{ 
    alert("something"); 
    e.stopPropagation(); 
}); 

¿Cuál es e aquí, y por qué no funciona el funcionar sin él? ¿Por qué puedo escribir algo en lugar de e?

+1

puede escribir cualquier cosa en lugar de e, simplemente use el nuevo nombre en toda la función – galambalazs

+0

@galambalazs - En realidad no puede usar ningún parámetro, no digo que * debería *, pero * puede * . –

+0

no si desea hacer stopPropagation ... necesita el objeto de evento para eso. o use argumentos [0], pero no lo confundamos ... – galambalazs

Respuesta

9

e es el event object que el controlador recibe. No necesita utilizar "e" específicamente como el nombre de la variable, puede llamarlo como quiera (¡siempre que no contenga ninguna cantidad de palabras clave!), Muchos lo llaman event, por ejemplo.

, que puede prescindir de él, ya que es el primer argumento, arguments[0] también funciona, pero no me ir por ese camino. You can see this working here, pero nuevamente usaría el argumento declarado como está actualmente, así que es muy explícito.

+1

... ¿feliz ahora? :) – galambalazs

+2

@galambalazs - acerca de? No me importa si la respuesta * my * se seleccionó como respuesta ... Me importa que se seleccione una ** buena ** respuesta. No voto a menudo (consulte mi perfil), tampoco aquí ... pero cuando el próximo buscador de Google busca una respuesta a la pregunta, el sitio es mejor en general si es ** bueno, completo * * uno es seleccionado para estar en la parte superior para ellos (a través de ser aceptado). Creo que esto, Jamiec y T.J. todos encajan en esa descripción, y me alegraría si alguno de ellos fuera aceptado. –

+0

no hay ningún argumento al respecto ... estoy completamente de acuerdo con usted. :) – galambalazs

3

e en ese ejemplo es el objeto de evento (link to docs) para el evento click. Al igual que con cualquier argumento de función, puede usar cualquier nombre que desee. Si no necesita hacer nada con él (por ejemplo, si no necesita llamar al stopPropagation), puede dejarlo por completo.

3
+3

¿Por qué se sube tanto esto? Solo responde 1/3 de la pregunta ... –

+2

He votado a favor, porque fue la primera respuesta. – Simon

+1

he actualizado porque no hay necesidad de dar una descripción más larga que está fuera de alcance y ya está escrito así que ¿por qué copiar y pegar –

6

e, en este contexto, es el objeto de evento generado por el evento click. Que funcionará perfectamente bien sin ella (aunque, en su ejemplo, usted no será capaz de stopPropagation):

$("#new_lang").click(function() 
{ 
    alert("something"); 
}); 

También puede sustituir cualquier nombre para el correo, como lo haría con cualquier función PARAM

$("#new_lang").click(function(eventObj) 
{ 
    alert("something"); 
    eventObj.stopPropagation(); 
}); 
0
Una vez más

de http://api.jquery.com/bind/ como vinculados a la pregunta anterior: la función de devolución de llamada

el controlador también puede parámetros de tomar. Cuando se llama a la función , el objeto de evento de JavaScript se pasará al primer parámetro.

El objeto del evento es a menudo innecesario y el parámetro se omite, como suficiente contexto suele ser disponible cuando el controlador está obligado a saber exactamente lo que hay que hacer cuando se activa el controlador. Sin embargo, a veces es necesario para recopilar más información sobre el entorno del usuario en el momento en que se inició el evento .

Hay mucha información útil en esa página. :)

Cuestiones relacionadas