2012-02-02 9 views
11

मैं तत्व की ऊंचाई मान की एक सूची प्राप्त करने का प्रयास कर रहा था लेकिन यह 0
लौटा रहा था मैंने कुछ शोध किया है और देखा है कि तत्व की ऊंचाई प्राप्त करने के लिए, यह तत्व दिखाई देना चाहिए।
लेकिन जब यह छुपा हुआ है तो मैं इसकी ऊंचाई देखना चाहता हूं। यदि इसकी ऊंचाई कुछ मूल्यों से बड़ी है तो कुछ फ़ंक्शंस का उपयोग करें, फिर इसे दृश्यमान बनाएं। क्या इसे करने का कोई तरीका है?Jquery एक छिपा तत्व की ऊंचाई प्राप्त कर रहा है

मेरा मतलब है:

  1. चेक छिपा तत्व की ऊंचाई।
  2. यदि यह ठीक है तो यह दृश्यमान है।
  3. यदि आवश्यक मूल्य नहीं है तो कुछ कार्य करें।
  4. इसे दृश्यमान बनाएं।
+2

की सटीक डुप्लिकेट http://stackoverflow.com/questions/2345784/ jquery-get-height-of-hidden-element-in-jquery-1-4-2 – samccone

+2

यह छिपा तत्वों के साथ काम करता है - http://jsfiddle.net/xgbEv/ –

+0

@ken redler: यह सबसे अच्छा समाधान है जो मैंने पाया इसके बारे में। मुझे बस .appendTo ('body') का उपयोग करना पड़ा क्योंकि यह .show() – Guntram

उत्तर

17

आप show तत्व ऊंचाई पाने और फिर इसे छिपा कर सकते हैं, दृष्टि से आप कोई अंतर नहीं देखेंगे।

var height = $('elementSelector').show().height(); 
$('elementSelector').hide(); 
if(height != <<HeightToCompare>>){ 
    //Code here 
} 
//Finally make it visible 
$('elementSelector').show(); 

Demo

+0

की गणना करने के लिए मुझे सुराग देने के लिए धन्यवाद यह संभवतः झिलमिलाहट होगी। – AlienWebguy

+1

नहीं, यह झिलमिलाहट नहीं करता है। एक नज़र डालें http://jsfiddle.net/PdEbM/ – ShankarSangoli

+0

मैंने एक तत्व दिखाने के बारे में सोचा तो छुपाकर यह कुछ दृश्य समस्या का कारण बन जाएगा लेकिन अब मैं इसका परीक्षण करता हूं। हां यह कोई समस्या नहीं है। मदद के लिए धन्यवाद। – Malixxl

6

एक तरीका वस्तु को क्लोन करना, व्यूपोर्ट के बाहर क्लोन को स्थिति बनाना, इसे दृश्यमान बनाना, क्लोन को मापना, फिर इसे नष्ट करना है।

तो तुम हो:

<div id="maybe" style="display: none;"> 
    Something 
</div> 

आप jQuery का उपयोग कर रहे हैं, इसलिए आपको कुछ इस तरह करते हैं:

$('#maybe') 
    .clone() 
    .attr('id','maybe_clone') // prevent id collision 
    .css({     // position far outside viewport 
    'position': 'absolute', 
    'left': '-1000px' 
    }); 

if($('#maybe_clone').show().height() > 200) { 
    $('#maybe').show(); 
} 

$('#maybe_clone').remove();  // housekeeping 
+0

+1 के साथ काम नहीं करता था, या अस्थायी रूप से पूरी तरह से स्थिति बनाते हैं और तत्व को स्वयं ले जाते हैं। चूंकि तत्व प्रारंभ होने के लिए छिपा हुआ है, इसलिए यह मार्कअप को परेशान नहीं करेगा। –

+0

यदि 'डिस्प्ले: किसी भी तत्व को मूल तत्व पर लागू नहीं किया गया है, तो यह काम नहीं करेगा। एक फिक्स इसके मूल अभिभावक के बाहर क्लोन इंजेक्शन देगा: '.clone()। Appendto ('body')'। –

+0

छुपा div ऊंचाई –