开发者

jQuery chaining: Can everything be chained? When can we not chain?

I know that not all jQuery functions can be chained together. Is there a rule of thumb on this. When can we not chain 2 fu开发者_StackOverflow社区nctions together.


You can chain when the function returns a "jQuery object".

For example, .css(property, value) can be chained, as the doc says it Returns jQuery:

jQuery chaining: Can everything be chained? When can we not chain?

while .height() cannot, because it returns an integer.

jQuery chaining: Can everything be chained? When can we not chain?

Typically, the functions that returns "jQuery objects" are those which typically would not "return a value", e.g. setter methods (.css(prop, val), .addClass()), event binders (.click(handler)), etc.

(Of course traverse methods (.parent(), .find(), etc.) can also be chained but the returned object will be different from the input.)


You can't chain a function that returns something other than a jQuery object. For example, attr() with one parameter to get the value of an attribute.


The way to distinguish is that functions which have side effects typically return jquery and can be chained where as functions with an actual return (like .text()) cannot.


if in the plugin they do:

return this; //<--jquery object

at the end then u can change it with other plugins :-)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜