2011-08-10 16 views
5

अगर मैं निम्न मार्कअप है:jQuery के समस्या

<div id="parent" style="width: 300px; height: 300px;"> 
    <div id="child" style="position: relative; left: 0; top: 0; width: 100px; height: 100px;"></div> 
</div> 

और मैं इस प्रकार है ?:

एक ही रास्ता होगा अपनी मूल करने के लिए बच्चे के रिश्तेदार की स्थिति को प्राप्त करना चाहते हैं,
x = parseInt($('#child').css('left')); // returns 0 as needed 
y = parseInt($('#child').css('top')); // return 0 as needed 

क्योंकि अगर मैं निम्न कार्य करें:

x = $('#child').position().left; // most likely will not return 0 
y = $('#child').position().top; // most likely will not return 0 

स्थिति तथ्य यह है कि ऑफसेट विधि एक करता है की वजह से गलत है इसके अलावा दादा दादी के मार्जिन, पैडिंग और सीमा को जोड़ें (चाहे वह इसके डिफ़ॉल्ट मार्जिन या किसी अन्य दादाजी तत्व के साथ शरीर तत्व हो)।

मुझे सही स्थिति प्राप्त करने की आवश्यकता है (मेरे उदाहरण में यह 0, 0 होगा) लेकिन मुझे संदेह है कि jQuery में कोई विधि नहीं है जो मेरे लिए इसकी गणना कर सकती है?

+2

एक नोट: $ ('# बच्चा')। सीएसएस ('टॉप') स्पष्ट शीर्ष निर्दिष्ट नहीं होने पर "ऑटो" दे सकता है। –

उत्तर

7

.position() सही है। यह आपको x और y किसी तत्व के ऑफ़सेट पेरेंट से संबंधित मान देगा। आपका #child तत्व अपने ऑफसेट माता-पिता के सापेक्ष स्थित है, जो <body> है। #parent अपने ऑफसेट माता-पिता को बनाने के लिए, relative या absolute का position दें।

<div id="parent" style="position: relative; width: 300px; height: 300px;"> 
    <div id="child" style="position: relative; left: 0; top: 0;...;"></div> 
</div> 
2

.स्थिति() विधि हमें ऑफसेट माता-पिता के लिए एक तत्व रिश्तेदार की वर्तमान स्थिति को पुनः प्राप्त करने की अनुमति देता है। .offset() के साथ इसकी तुलना करें, जो दस्तावेज़ के सापेक्ष वर्तमान स्थिति को पुनर्प्राप्त करता है। का उपयोग करें। ऑफसेट()

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