jQuery शो () ट्विटर बूटस्ट्रैप सीएसएस वर्ग के लिए छिपा हुआ है


89

मैं ट्विटर बूटस्ट्रैप का उपयोग कर रहा हूं और मैं देखता हूं कि jQuery show()या fadeIn()DOM तत्व को वर्ग के रूप में चिह्नित नहीं करता है hiddenक्योंकि jQuery फ़ंक्शन केवल display: noneविनिर्देश को हटा देता है । हालाँकि, visibilityयह अभी भी निर्धारित है hidden

मुझे आश्चर्य है कि इस के आसपास काम करने का सबसे अच्छा तरीका क्या है?

  1. hiddenतत्व पर वर्ग निकालें
  2. दृश्यता गुण बदलें
  3. मेरी सीएसएस में छिपे वर्ग को अधिलेखित करें

विशेष रूप से, मैं यह जानना चाहता हूं कि क्या jQuery या css के साथ इसे ठीक करना बेहतर है और क्यों।


मैं आम तौर पर {दृश्यता: छिपी} का उपयोग नहीं करता हूं क्योंकि यह डोम में तत्व को जगह लेने के लिए छोड़ देता है। क्या ऐसा करने का कोई कारण है?
इशरवुड

1
@isherwood visibility: hiddenबूटस्ट्रैप उत्तरदायी से है।
लिम एच।

जवाबों:


124

जिस सीएसएस क्लास की आपको तलाश है .collapse। यह करने के लिए तत्व सेट करता हैdisplay: none;

तो उपयोग $('#myelement').show()करना ठीक से काम करेगा।

अद्यतन: बूटस्ट्रैप v3.3.6 अद्यतन किया है। वापस करने के लिए:

.collapse {
  display: none;
}

2
यह स्वीकृत उत्तर होना चाहिए। यह बूटस्ट्रैप में आदि के साथ भी काम करता है .slideDown(), सामान के लिए जिसे आप कभी भी प्रदर्शित नहीं करना चाहते हैं। .fadeIn().hidden
snumpy

क्या यह बूटस्ट्रैप 3 में नया है?
लिम एच।

नहीं - मैंने देखा है कि यह प्रलेखन में उपयोग किया जाता है। <div class = "nav-पतन पतन"> यह पंक्ति v2.3.2 उदाहरणों से ली गई थी।
इयोनी

33
दुर्भाग्य से, यह उत्तर अब .collapsevisibility: hidden;
Boostrap

9
मेरे बूटस्ट्रैप 3 में काम करता है?
जेम्स मैककॉर्मैक

21

यह आपके अदृश्य तत्व को फीका कर देगा और कक्षा को हटा देगा

$('#element.hidden').css('visibility','visible').hide().fadeIn().removeClass('hidden');

http://jsfiddle.net/7qxVL/

यदि आपको वास्तव में अदृश्य (यानी स्थान लेने के लिए) तत्व की आवश्यकता नहीं है, तो आप फिर से परिभाषित करना चाहते हैं। यह (आप स्थानीय सीएसएस में, बूटस्ट्रैप स्रोत नहीं बदलें, या इससे भी बेहतर, अपनी स्थानीय लेस फ़ाइल में)।


धन्यवाद मेरे लिए काम किया! मैंने बस करना आसान कर दिया :: fadeIn ()। RemoveClass ('छिपा हुआ') - सीधे सीएसएस को हेरफेर करने या छिपाने के लिए कोई ज़रूरत नहीं है।
dbrin

1
@IrishJoker द्वारा पोस्ट किया गया उत्तर देखें। आपको उन .hiddenतत्वों के लिए उपयोग नहीं करना चाहिए जिन्हें आप जावास्क्रिप्ट का उपयोग करके प्रदर्शित करना चाहते हैं। .collapseइसके बजाय उपयोग करें ।
स्नूपी

13

चेतावनी:

बूटस्ट्रैप 3.3.0 बस बदल गया है।

.collapse {
  display: none;
  visibility: hidden;
}

जो jQuery.show () के लिए एक ब्रेकिंग चेंज है, मुझे वापस इनलाइनिंग वापस करना पड़ा:

<div class="alert alert-danger" style="display:none;" >
</div>      

jQuery का उपयोग जारी रखने के लिए निम्नानुसार है:

$('.alert').html("Change a few things up and try submitting again.").show()

एकमात्र वर्ग जिसे मैं बूटस्ट्रैप 3.3.0 में पा सकता था, सिर्फ 'प्रदर्शन: कोई नहीं' लागू करने के लिए

.navbar {
  display: none;
}

1
मैं ऐसा करने के लिए बूटस्ट्रैप का एक अच्छा कारण नहीं देख सकता। मेरे पास व्यक्तिगत रूप से हमेशा एक और सीएसएस फ़ाइल होती है, जिसका उपयोग 'सीएसएस सेटिंग' को ओवरराइड करने के लिए किया जाता है - मैं .collapse को केवल प्रदर्शन सेटिंग में बदल दूंगा। इस तरह, आप सब कुछ तोड़ने की चिंता किए बिना आगे बढ़ सकते हैं। संदेश में दर्द :(
Eoinii

बूटस्ट्रैप 3.3.x में समाधान का उपयोग करने के लिए है .collapse('hide')और .collapse('show')बजाय jQuery के तरीकों में से। आप कक्षा के माध्यम से collapse(छिपाने के लिए) या collapse in(दिखाने के लिए) सीधे HTML में प्रारंभिक दृश्यता सेट कर सकते हैं । Getbootstrap.com/javascript/#collapse देखें ।
एलेक्स्व

नवीनतम संस्करण 3.3.6 ने इस परिवर्तन को वापस ले लिया है
Eoinii

5

मुझे भी यही समस्या थी। मैंने इस पैच का उपयोग किया:

$(function() {
  $('.hidden').hide().removeClass('hidden');
});

तब मुझे एक और समस्या हुई, क्योंकि मेरा आवेदन नए तत्वों को उत्पन्न करता है और उन्हें जोड़ / बढ़ाता है। मैंने जो नया तत्व किया है, उसे उत्पन्न करने के बाद मैंने आखिरकार क्या किया:

var newEl = ...;
$(newEl).find('.hidden').hide().removeClass('hidden');

4

मेरे लिए यह इसलिए था क्योंकि बूटस्ट्रैप, !importantक्लास को छिपाने और छिपाने दोनों के लिए हैक का उपयोग कर रहा है ।

तो आप show()jquery के साथ प्रदान किए गए आदि तरीकों का उपयोग नहीं कर सकते । इसके बजाय आपको हैकी कोड को ओवरराइट करते हुए और भी भयानक कोड लिखना होगा।

$('#myelement').attr('style', 'display: block !important');

महत्वपूर्ण एक अंतिम विकल्प है और वास्तव में बूटस्ट्रैप जैसे मुख्य पुस्तकालय में उपयोग नहीं किया जाना चाहिए।


4

यह काम करता है, लेकिन मैं पहले उत्तर का प्रयास करने जा रहा हूं और कक्षाओं को बदलूंगा .collapse

.toggleClass('hidden')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.