मैं शायद jQuery के साथ प्रवीणता पर 7 या 8 के बारे में हूं (1-10 के पैमाने पर), इसलिए मुझे यकीन नहीं है कि यह भी समझ में आता है, लेकिन मैं जानना चाहता हूं कि कोई भी jQuery फ़ंक्शन या संभावित रूप से एक प्लगइन के बारे में जानता है जो किसी दिए गए शर्त को सत्य होने पर jQuery की शाखा को केवल निष्पादित करने की अनुमति देता है। अन्यथा, मैं किसी को सोचता है कि अगर एक सामान्य JavaScript वाक्य रचना इस के समान का उपयोग कर विभिन्न घटनाओं की कुर्की को नियंत्रित कर सकता है जबकि अवधारणा किसी तरह (संपादित और कैसे यह दोषपूर्ण है)क्या कोई शर्त सही है, तो jQuery चेनिंग की शाखा को करने का कोई तरीका है
में त्रुटिपूर्ण जानकर अच्छा लगेगा:
var desiredElement = $('.parent') // find the parent element
.hover(overFunction,offFunction) // attach an event while I've got the parent in 'scope'
.find('.child-element'); // then find and return the child
if (booleanVar1) { // if one condition
desiredElement.click(clickFunction1); // attach one event
} else if (booleanVar2) { // or if a different condition
desiredElement.click(clickFunction2); // attach a different event
} else { // otherwise
desiredElement.click(clickFunction3); // attach a default event
}
$('.parent').find('.other-child') // (or $('.parent .other-child')
.css(SomePredefinedCssMapping)
.hide()
//...
मैं अगर वहाँ यह सब jQuery में करने के लिए एक रास्ता है या सोच रहा था अगर वहाँ एक अच्छा कारण है नहीं करने के लिए ... शायद कुछ इस तरह:
$('.parent') // find the parent element
.hover({overFunction,offFunction}) // attach an event while I've got the parent in 'scope'
.find('.child-element') // then find the child
.when(booleanVar1) // if one condition
.click(clickFunction1) // attach one event
.orWhen(booleanVar2) // or if a different condition
.click(clickFunction2) // attach a different event
.orElse() // otherwise
.click(clickFunction3) // attach a default event
.end()
.end()
.find('.other-child')
.css(SomePredefinedCssMapping)
//...
नोट: मुझे लगता है कि इस वाक्य रचना सही है, बूलियन्स संभालने और कार्यों को उचित रूप से परिभाषित कर रहे हैं, लेकिन मैं यकीन है कि मैं बहुत स्पष्ट रूप से
प्रस्तावित jQuery मेरे लिए थोड़ा neater लगता भर में आशय मिल गया हूँ (??) सहमत असहमत? - तो यहां मेरे प्रश्न हैं:
- क्या मूल jQuery का कुछ हिस्सा है जो मूल रूप से पहले से ही करता है?
- क्या वहां कोई एक्सटेंशन पहले से मौजूद है जो इस प्रकार की चीज़ को अनुमति देता है?
- क्या मैं सोच रहा हूं उससे करना मुश्किल है? (मुझे लगता है कि यदि स्थिति सत्य है, तो मौजूदा तत्व सेट को रखने की तरह कुछ लगता है, यदि स्थिति गलत है, तो खाली तत्व सेट को दबाकर, प्रत्येक
or
स्थिति के लिए तत्व सेट को वापस पॉप करना, ऐसा होगा, जैसे किend()
विधि वापस पॉपfind()
कॉल के बाद पिछला सेट) - क्या ऐसा कुछ है जो इसे कम कुशल बनाता है?
संपादित
सवाल यह है कि विधि श्रृंखलन के साथ ऐसा करना या कारण है कि यह unadvisable होगा (विशेष प्राथमिकता दी) पूछता है। हालांकि यह विकल्पों के लिए नहीं पूछता है, ऐसे में एक jQuery चेनिंग दृष्टिकोण के साथ समस्याओं को समझाने के लिए ऐसे विकल्प आवश्यक हो सकते हैं। इसके अलावा, चूंकि उपर्युक्त उदाहरण तुरंत बूलियन का मूल्यांकन करता है, इसलिए किसी भी अन्य समाधान को वही करना चाहिए।
निश्चित रूप से इसके लिए एक प्लगइन कहीं भी नहीं है, मैंने देखा है यह पहले jQuery मंचों में एक जवाब के रूप तैनात। मैं इस तरह के वाक्यविन्यास से सहमत नहीं हूं, हालांकि, यह किसी ऐसी चीज़ के लिए अधिक फ़ंक्शन कॉल जोड़ रहा है जो आवश्यक रूप से कोडिंग को आसान नहीं बनाता है। –
यह सिर्फ –
भयानक है जबकि मैं हर किसी की टिप्पणी की सराहना करता हूं (विशेष रूप से @ tereško - हालांकि मुझे यकीन नहीं है कि मैं सहमत हूं), मुझे अभी भी मेरे किसी भी प्रश्न का वास्तविक उत्तर नहीं दिख रहा है, इसलिए मैं थोड़ी देर तक रहूंगा अधिक –