2011-12-01 4 views
9

के बीच अंतर मैं jquery के साथ काम कर रहा हूं और उस तालिका पंक्ति के चयन पर किसी तालिका में कक्षा जोड़ने का प्रयास कर रहा हूं।टॉगलक्लास और एडक्लास

मैं शुरुआत में निम्नलिखित कोड का उपयोग कर रहा था -

$(this).parents("tr").toggleClass("over", this.clicked);    

किसी कारण से, कि केवल कुछ मामलों में जहां पहले से ही एक वर्ग सौंपा था में काम नहीं कर रहा था। इससे पहले कि मैं किसी भी समस्या निवारण के साथ भी पागल हो गया था, मैं इसे निम्नलिखित करने के लिए बदल -

$(this).parents("tr").addClass("over", this.clicked);   

इस नए विकल्प काम करने ठीक दिखाई देता है।

मेरा सवाल यह है कि ऊपर एक विकल्प दूसरे से बेहतर है ..... क्या मुझे addClass के बजाय toggleClass का उपयोग करना चाहिए, या addClass पर्याप्त है?

किसी भी विचार के लिए धन्यवाद।

उत्तर

12

addClass बस यही करता है, कक्षा को तत्व में जोड़ता है।

दूसरी ओर toggleClass, उस वर्ग को टॉगल करता है, इसे हटाने अगर यह नहीं है, अन्यथा यह जोड़ने, लेकिन वैकल्पिक रूप से एक बूलियन मान (सही/गलत) लेने निर्धारित करने के लिए वस्तु जोड़ा जाना चाहिए (सही) या हटा दिया करता है (असत्य)।

toggleClass शायद उन उदाहरणों में आपके लिए काम नहीं कर रहा था जहां this.clickedfalse था, जो व्यवहार की अपेक्षा की जाती है। addClass में आप जो तर्क पारित कर रहे हैं उसका कोई प्रभाव नहीं है, क्योंकि यह हमेशा कक्षा जोड़ता है।

निष्कर्ष: टॉगल कक्षाओं के लिए

उपयोग toggleClass, वर्गों को जोड़ने के लिए addClass का उपयोग करें।

1

वास्तव में निर्भर करता है। यदि आप कक्षा को हटाने की योजना नहीं बनाते हैं, तो मैं addClass के साथ रहूंगा। स्वाभाविक रूप से, toggleClass आपको कक्षाओं को टॉगल करने की अनुमति देता है।

+0

मैं वास्तव में के माध्यम से जा रहा हूँ और इससे पहले कि तालिका में सभी पंक्तियों के लिए विशेष वर्ग को हटाने मैं इसे उस पंक्ति पर जोड़ता हूं जिसे चुना गया है। इसलिए, मुझे लगता है कि केवल addClass मुझे वही पूरा करेगा जो मुझे चाहिए। धन्यवाद – czuroski

3

.addClass() में दूसरा तर्क देने की कोई आवश्यकता नहीं है - यह हमेशा कक्षा को जोड़ देगा।

यदि यह व्यवहार आप चाहते हैं, तो यह सही तरीका है।

+0

उल्लेख करने के लिए धन्यवाद कि दूसरा तर्क अनावश्यक है ...मैंने इसे हटा दिया और यह ठीक काम किया। – czuroski

4

यदि addClass आपके लिए काम कर रहा है, तो आपको इसके साथ रहना चाहिए। विधियों का उद्देश्य विभिन्न उद्देश्यों के लिए है। addClass यह सुनिश्चित करता है कि एक विशेष वर्ग किसी तत्व पर मौजूद है, जबकि toggleClass कक्षा को जोड़ता है यदि यह वहां नहीं है और यदि यह है तो इसे हटा देता है। प्रत्येक विधि के पूरे स्पष्टीकरण के लिए API संदर्भ

चेक आउट:

संबंधित मुद्दे