2010-12-02 15 views
7

के साथ क्रॉस ब्राउज़र समस्या मुझे jQuery में offset() फ़ंक्शन के साथ एक क्रॉस ब्राउज़र समस्या है। उदाहरण के लिए, मैं एंकर टैगऑफसेट() jquery फ़ंक्शन

उदाहरण के ऑफसेट की तलाश में हूं। $('#anchorid').offset().top

  • Firefox 3.6 में = 205
  • IE8 = 204
  • में IE7 में = 553

आप प्रत्येक दिए गए मान में अंतर देख सकते हैं। मैं एफएफ & आईई 8 के बीच के अंतर से बहुत चिंतित नहीं हूं लेकिन मैं आईई 7 और अन्य के साथ हूं।

क्या कोई अन्य कार्य है जिसका उपयोग मैं कर सकता हूं जो समान या समान क्रॉस ब्राउज़र या इसके लिए एक संभावित समाधान होगा?

+3

क्या आपके पास एक उदाहरण पृष्ठ है? वह * रास्ता * बंद है। –

उत्तर

10

संभावना है कि आपके मार्कअप के साथ कुछ गलत (गैर-क्रॉसब्रोसर) है। लेकिन वैकल्पिक के रूप में आप मूल जावास्क्रिप्ट का उपयोग करने का प्रयास कर सकते हैं।

document.getElementById('anchorid').offsetTop 
अगर आप पूरे पृष्ठ पर ऑफसेट आप की तरह एक समारोह इस्तेमाल कर सकते हैं प्राप्त करना चाहता था के

:

function findTotalOffset(obj) { 
    var ol = ot = 0; 
    if (obj.offsetParent) { 
    do { 
     ol += obj.offsetLeft; 
     ot += obj.offsetTop; 
    }while (obj = obj.offsetParent); 
    } 
    return {left : ol, top : ot}; 
} 
+0

आपकी मदद के लिए धन्यवाद – amateur

0

मैं जब मेरी स्क्रिप्ट एक पृष्ठ पर लोड किया जाता है IE8 में इस समस्या को मिलता है जहां तत्व कि हम offset().top प्राप्त नहीं करना चाहते हैं।

मैं इसे इस तरह हल:

if ($('#element').length){ 
    $('#element').offset().top // ... 
} 

कभी offset().top पर अमल करता है, तो तत्व मौजूद नहीं है।

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