2011-03-31 17 views
11

मुझे पता है कि सभी jQuery कार्यों को एक साथ बंधे नहीं जा सकते हैं। क्या इस पर अंगूठे का नियम है। हम श्रृंखला 2 कार्यों को एक साथ नहीं कर सकते हैं।jQuery चेनिंग: क्या सबकुछ जंजीर हो सकता है? हम श्रृंखला कब नहीं कर सकते?

उत्तर

19

जब फ़ंक्शन "jQuery ऑब्जेक्ट" देता है तो आप श्रृंखला बना सकते हैं।

उदाहरण के लिए, .css(property, value) श्रृंखलित किया जा सकता है, के रूप में दस्तावेज़ को यह jQuery रिटर्न का कहना है: enter image description here

जबकि .height() cannot है, क्योंकि यह एक पूर्णांक देता है।

enter image description here

आमतौर पर उन कार्यों को रिटर्न "jQuery वस्तुओं" उन जो आम तौर पर, उदाहरण के लिए "कोई मान" नहीं होता हैं सेटर तरीकों (.css(prop, val), .addClass()), घटना बाइंडरों (.click(handler)), आदि

(बेशक पार विधियों (.parent(), .find(), आदि) भी श्रृंखलित किया जा सकता है लेकिन उसके परिणाम वस्तु इनपुट से अलग होगा।)

+0

क्या आप JQuery में उदाहरण दे सकते हैं जहां 2 कार्यों को जंजीर नहीं बनाया जा सकता है। – Pinkie

+0

@ केनीटीएम, क्या मैं आपसे अनुरोध कर सकता हूं कि आप यहां एक अलग विषय पर एक jquery प्रश्न देखें: http://stackoverflow.com/questions/13137404/jquery-find-div-class-name-at-a-certain- स्थिति-जबकि-स्क्रॉलिंग? –

2

या प्लग-इन में वे करते हैं:

return this; //<--jquery object 
अंत में

तो यू यह अन्य प्लग-इन के साथ बदल सकते हैं :-)

+0

बार-बार फ़िल्टर मूल वस्तु को वापस नहीं करते हैं। – zzzzBov

+0

@zzzBov मैंने अपनी पोस्ट को प्रतिबिंबित करने के लिए तय किया .. – Neal

4

आप श्रृंखला एक समारोह है कि retur नहीं कर सकते एक jQuery वस्तु के अलावा कुछ और ns। उदाहरण के लिए, एक गुण के मान प्राप्त करने के लिए एक पैरामीटर के साथ attr()

3

अंतर करने का तरीका यह है कि जिन कार्यों के दुष्प्रभाव होते हैं वे आमतौर पर jquery लौटाते हैं और उन्हें वास्तविक वापसी के साथ फ़ंक्शन के रूप में चिह्नित किया जा सकता है (जैसे .text()) नहीं।