2011-09-27 12 views
5

नमूना jQuery:क्या क्लोन jQuery ऑब्जेक्ट की ऊंचाई प्राप्त करना संभव है?

$('document').ready(function(){ 
    var $theP = $('p'); 
    var $theDiv = $('div'); 
    $theP.html($theP.html() + "<br>div height: " + $theDiv.outerHeight()); 
    var $theClone = $theDiv.clone(); 
    $theP.html($theP.html() + "<br>clonded div height: " + $theClone.outerHeight()); 
}) 

लाइव लिंक: http://jsbin.com/odujiv/4

ऊपर चल रहा है, तो आप जब उसकी ऊंचाई प्राप्त करने की कोशिश की '0' एक परिणाम मिलता है। मुझे लगता है कि यह इस तथ्य के कारण है कि क्लोन ऑब्जेक्ट को अभी तक डोम में नहीं रखा गया है। ऊंचाई को प्राप्त करने का एकमात्र तरीका क्लोन तत्व को वापस डोम में जोड़ना है? यदि ऐसा है, तो मुझे लगता है कि यह करने योग्य है, लेकिन इसे वापस करने से पहले इसे संभालना बहुत अच्छा होगा।

+0

यहां प्रस्तावित कुछ के लिए 'हैकी' समाधान है: http://stackoverflow.com/questions/2345784/jquery-get-height-of-hidden-element-in-jquery-1-4-2 – Clive

+0

हाँ , मुझे लगता है कि समाधान यह है कि मुझे इसकी ऊंचाई प्राप्त करने से पहले इसे डीओएम में जोड़ना होगा। वह शायद काम करेगा। मैं इसे डीओएम में जोड़ सकता हूं, इसे ऑफ-स्क्रीन की स्थिति में रख सकता हूं, ऊंचाई प्राप्त कर सकता हूं, मेरी गणना कर सकता हूं, फिर उसे जहां चाहूं वहां रख सकता हूं। –

+1

मैंने पहले इसमें भाग लिया है - डीओएम ऑफ-स्क्रीन में जोड़ने से चाल चल रही है। – Pat

उत्तर

4

नहीं, दुर्भाग्य से। दस्तावेज़ से जुड़े नहीं होने पर कच्चे HTML तत्वों में आकार नहीं होते हैं, और jQuery ने वर्कअराउंड लागू नहीं किया है। मुझे लगता है कि यह इस बात की वजह से है कि एक दूसरे पर परस्पर निर्भर एचटीएमएल तत्वों के आकार कैसे हैं!

-1

इस प्रयास करें:

$theClone.height(); 

or 

$theClone.css('height'); 
+1

मुझे विशेष रूप से बाहरी हाइट की आवश्यकता है, लेकिन समस्या एक जैसी है। उपर्युक्त 0 भी देता है –

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