2011-10-07 4 views
5

मैं गतिशील रूप से किसी आइटम की चौड़ाई को खोजने की कोशिश कर रहा हूं जिसमें एक विशिष्ट चौड़ाई वाला सीएसएस क्लास होगा, अपनी पृष्ठभूमि छवि (एक स्प्राइट) गतिशील रूप से स्थिति के क्रम में। हालांकि, आइटम अभी तक डोम में नहीं जोड़ा गया है। क्या डीओएम में जोड़े जाने से पहले कक्षा की चौड़ाई संपत्ति को पढ़ने का कोई तरीका है?जावास्क्रिप्ट/jquery - किसी तत्व/सीएसएस क्लास की चौड़ाई कैसे प्राप्त करें जिसे अभी तक डोम में जोड़ा नहीं गया है

+0

नहीं कि मुझे भरोसेमंद पता है। एक आम तरीका यह है कि इसे स्क्रीन से बाहर निकालना है (-x, -y) और फिर इसकी चौड़ाई जांचें। – CaffGeek

+0

मुझे नहीं लगता कि जावास्क्रिप्ट किसी तत्व के 'भौतिक' गुणों तक पहुंच सकता है जब तक इसे डीओएम में जोड़ा नहीं जाता है; इसलिए मुझे नहीं लगता कि यह संभव है, नहीं ... –

+0

आम सहमति नहीं कहेंगे। मुझे भी नहीं लगता कि यह संभव है। –

उत्तर

1

मुझे विश्वास है कि आप नहीं कर सकते हैं। इसके बजाय इसे एक परीक्षण div में जोड़ें, चौड़ाई पाएं और फिर div को हटा दें।

$selector.append("<div id='test'></div>"); 
    var widthVal= $selector.find("#test").width(); 
     $("#test").remove(); 

चयनकर्ता तत्व चयनकर्ता है जिसे आप जोड़ना चाहते हैं। आप "टेस्ट" div के साथ एक वर्ग को "डिस्प्ले: कोई नहीं"

0

यह एक छोटी हैकी है लेकिन इसे काम करना चाहिए। इसे सीओएम विशेषता display: none के साथ डीओएम में जोड़ें ताकि यह अदृश्य हो जाए तो आप संपत्ति के साथ पढ़ सकते हैं और यदि आवश्यक हो तो तत्व को हटा सकते हैं। या प्रदर्शन से अपना राज्य बदलें: कोई नहीं।

आशा है कि इससे मदद मिलेगी।

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