2011-03-31 12 views

Respuesta

19

Puede encadenar cuando la función devuelve un "objeto jQuery".

Por ejemplo, se pueden encadenar .css(property, value), como el doctor dice que devuelve jQuery: enter image description here

mientras .height() cannot, porque devuelve un entero.

enter image description here

Típicamente, las funciones que devuelve "objetos jQuery" son aquellos que normalmente no sería "devolver un valor", por ejemplo, métodos setter (.css(prop, val), .addClass()), aglutinantes de eventos (.click(handler)), etc.

(métodos Por supuesto transversal (.parent(), .find(), etc.) también se pueden encadenar pero el objeto devuelto será diferente de la de entrada.)

+0

¿Puede dar ejemplos en JQuery donde no se pueden encadenar 2 funciones? – Pinkie

+0

@KennyTM, puedo solicitarle que consulte una pregunta de jquery sobre un tema diferente aquí: http://stackoverflow.com/questions/13137404/jquery-find-div-class-name-at-a-certain- posición mientras se desplaza? –

2

si en el plugin que hacen:

return this; //<--jquery object 

al final entonces u puede cambiarlo con otros plugins :-)

+0

Los filtros a menudo no devuelven el objeto original. – zzzzBov

+0

@zzzBov arreglé mi publicación para reflejar eso ... – Neal

4

no puede encadenar una función que RETUR ns algo más que un objeto jQuery. Por ejemplo, attr() con un parámetro para obtener el valor de un atributo.

3

La forma de distinguir es que las funciones que tienen efectos secundarios normalmente devuelven jquery y pueden encadenarse donde no pueden hacerlo las funciones con un retorno real (como .text()).

Cuestiones relacionadas