हालांकि इस सवाल का जवाब पहले भी कई बार दिया जा चुका है, लेकिन मुझे लगा कि मैं इसे भविष्य के उपयोगकर्ताओं के लिए अधिक संपूर्ण और ठोस जवाब के साथ जोड़ूंगा। मुख्य उत्तर समस्या को हल करता है, लेकिन मेरा मानना है कि चीजों को दिखाने / छिपाने के कुछ विभिन्न तरीकों को जानना / समझना बेहतर हो सकता है।
।
Css () का उपयोग करके डिस्प्ले बदलना
यह वह तरीका है जो मैं तब तक करता था जब तक मुझे इनमें से कुछ अन्य तरीके नहीं मिल जाते।
जावास्क्रिप्ट:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
पेशेवरों:
- छुप-छुप कर देखता है। यह इसके बारे में।
विपक्ष:
- यदि आप किसी अन्य चीज़ के लिए "प्रदर्शन" विशेषता का उपयोग करते हैं, तो आपको उस मूल्य को हार्डकोड करना होगा जो यह छिपाने से पहले था। इसलिए यदि आपके पास "इनलाइन" था, तो आपको करना होगा
$("#element_to_hid").css("display", "inline"); अन्यथा यह "ब्लॉक" या अन्य जो भी इसे मजबूर किया जाएगा, उसमें वापस डिफ़ॉल्ट होगा।
- टाइपो के लिए उधार देता है।
उदाहरण: https://jsfiddle.net/4chd6e5r/1/
।
AddClass () / removeClass () का उपयोग करके डिस्प्ले बदलना
इस एक के लिए उदाहरण स्थापित करते हुए, मैं वास्तव में इस पद्धति पर कुछ खामियों में भाग गया, जो इसे बहुत अविश्वसनीय बनाता है।
सीएसएस / जावास्क्रिप्ट:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
पेशेवरों:
- छिप जाता है .... कभी-कभी। उदाहरण पर p1 देखें।
- अनहाइड करने के बाद, यह पिछले प्रदर्शन मान का उपयोग करके वापस आ जाएगा .... कभी-कभी। उदाहरण पर p1 देखें।
- यदि आप सभी छिपी हुई वस्तुओं को पकड़ना चाहते हैं, तो आपको बस करने की जरूरत है
$(".hidden")।
विपक्ष:
- प्रदर्शित मूल्य को सीधे html पर सेट किए जाने पर छिपाया नहीं जाता है। उदाहरण पर P2 का संदर्भ लें।
- अगर सीएसएस () का उपयोग करके जावास्क्रिप्ट में डिस्प्ले सेट किया गया है तो छिपाया नहीं जाता है। उदाहरण पर p3 देखें।
- थोड़ा और कोड क्योंकि आपको एक सीएसएस विशेषता को परिभाषित करना है।
उदाहरण: https://jsfiddle.net/476oha8t/8/
।
टॉगल का उपयोग करके प्रदर्शन बदलना ()
जावास्क्रिप्ट:
$("element_to_hide").toggle(); // To hide and to unhide
पेशेवरों:
- हमेशा काम करता है।
- आपको इस बारे में चिंता करने की अनुमति नहीं देता है कि स्विच करने से पहले यह किस राज्य में था। इसके लिए स्पष्ट उपयोग .... टॉगल बटन के लिए है।
- छोटा और सरल।
विपक्ष:
- यदि आपको यह जानने की जरूरत है कि किस राज्य में स्विच किया जा रहा है ताकि वह सीधे संबंधित न हो, तो आपको यह पता लगाने के लिए और अधिक कोड (एक स्टेटमेंट) जोड़ना होगा कि वह किस राज्य में है।
- पिछले चोर के समान, यदि आप ऐसे निर्देशों का एक सेट चलाना चाहते हैं जिसमें छिपाने के उद्देश्य के लिए टॉगल () शामिल है, लेकिन आप नहीं जानते कि क्या यह पहले से ही छिपा हुआ है, तो आपको एक चेक (एक बयान) जोड़ना होगा पहले पता लगाने के लिए और अगर यह पहले से ही छिपा हुआ है, तो छोड़ें। उदाहरण के p1 का संदर्भ लें।
- पिछले 2 विपक्ष से संबंधित, टॉगल () का उपयोग करके ऐसी चीज़ के लिए जो विशेष रूप से छुपा रही है या विशेष रूप से दिखा रही है, दूसरों को आपके कोड को पढ़ने के लिए भ्रमित कर सकता है क्योंकि वे नहीं जानते कि वे किस तरह से टॉगल करेंगे।
उदाहरण: https://jsfiddle.net/cxcawkyk/1/
।
छिपाना () / शो () का उपयोग करके प्रदर्शन बदलना
जावास्क्रिप्ट:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
पेशेवरों:
- हमेशा काम करता है।
- अनहाइड करने के बाद, यह पिछले प्रदर्शन मान का उपयोग करके वापस आ जाएगा।
- आपको हमेशा पता चलेगा कि आप किस राज्य को स्वैप कर रहे हैं:
- यदि राज्य बदलते हैं तो राज्यों को बदलने से पहले दृश्यता की जांच करने के लिए बयानों को जोड़ने की आवश्यकता नहीं है।
- अपने कोड को पढ़ने वाले अन्य लोगों को भ्रमित न करें कि आप किस राज्य में स्विच कर रहे हैं, यदि राज्य मायने रखता है।
- सहज ज्ञान युक्त।
विपक्ष:
- यदि आप एक टॉगल की नकल करना चाहते हैं, तो आपको पहले राज्य की जांच करनी होगी और फिर दूसरे राज्य में स्विच करना होगा। इनके बजाय टॉगल () का उपयोग करें। उदाहरण के P2 का संदर्भ लें।
उदाहरण: https://jsfiddle.net/k0ukhmfL/
।
कुल मिलाकर, जब तक आपको विशेष रूप से टॉगल करने की आवश्यकता न हो, मैं छिपाने के लिए सबसे अच्छा () / शो () कहना चाहूंगा। मुझे आशा है कि आपको यह जानकारी उपयोगी लगी होगी।
return falseहैंonclick?