[jQuery-es] Pequeña duda sobre ámbito de variables

Choan C. Gálvez choan.galvez en gmail.com
Vie Ene 26 13:15:44 PST 2007


On 1/25/07, David Arango <arango en gmail.com> wrote:
> Hola chicos,
>
> Tengo este cacho de código:
>
>                 $('ul#products_list li a.remove').click(function() {
>                         var source = this;
>                         $.get(this.href, function(data) { $(source.parentNode).remove(); });
>                         return(false);
>                 });
>
> Se que esto es una pregunta de tío histérico, pero tengo que hacerla.
> ¿Puedo acceder a 'this' desde la función anónima sin tener que hacer
> esa asignación tan fea ('var source = this')?

Mm, no a `this` (que sí tienes acceso, aunque es otra cosa) pero sí al
elemento que ha desencadenado el evento:

$("#bla").click(function(e) {
  $.get(this.href, function(d) { $(e.target.parentNode).remove(); };
  e.preventDefault();
};

Ojito: `e.target` es el elemento sobre el que se ha actuado, que no
necesariamente corresponde con el elemento al que se ha asignado el
evento (burbujeo y esas cositas). Si no hay elementos dentro del
enlace, esto te servirá. De lo contrario, tendrías que buscar el
enlace entre sus padres.

Salú.
-- 
Choan
<http://choangalvez.nom.es/>


Más información sobre la lista de distribución jquery-es