[Jquery-Es] ayuda para volver a llamar a funcion

Choan Gálvez choan.galvez en gmail.com
Jue Nov 8 06:57:32 PST 2007


Hola.

On 07/11/2007, at 13:35, Luis Guevara wrote:

> Me refería a lo siguiente:
>
> De esta parte de código que me recomienda stripTM cambiar.
>
>
>>> Por cierto puedes mejorar el rendimiento encadenando las diferentes
>>> acciones, por ejemplo
>>> $('#tLista tbody tr').removeClass('AlternateBackTD BackTD')
>>>         .filter(':odd').addClass('AlternateBackTD').end()
>>>         .filter(':even').addClass('BackTD');
>>>
>>>
>
>
>
> ¿Porqué debe ir el .end() ? ¿Cual es su función?.  Estuve leyendo  
> en el
> manual pero como recien empiezo con esta librería no le capto la idea.


* jQuery trabaja con una pila de colecciones.
* Cada vez que ejecutas una selección de nodos, se añada una nueva  
capa a la pila.
* Los métodos de modificación (`addClass`, etc.) trabajan siempre  
sobre la capa superior
* Con `end()` eliminas la última capa.

Así (pinto entre corchetes una representación del contenido de la  
última capa de la pila):

$('#tLista tbody tr')  // [ tr1, tr2, tr3, tr4, .., trN ]
	.filter(':odd') // [ tr1, tr3, ..., trN ]
	.end() // [ tr1, tr2, tr3, tr4, .., trN ]
	.filter(':even') // [ tr2, tr4, ..., trN ]
	.end() // [ tr1, tr2, tr3, tr4, .., trN ]


> y ¿Porqué debe ir en la línea de en medio ? ¿no se supone que  
> debería ir en
> la línea final antes del ";"? Osea así:
>
> .filter(':even').addClass('BackTD').end();

La línea es irrelevante.

Salud.
-- 
Choan Gálvez
<choan.galvez en gmail.com>
<http://choangalvez.nom.es/>





Más información sobre la lista de distribución Jquery-Es