2012-12-09 6 views
5

मैं डार्ट में एलिमेंट (डोम एलिमेंट) के दस्तावेज़ (वैश्विक) निर्देशांक प्राप्त करने का प्रयास कर रहा हूं, जो शुद्ध जावास्क्रिप्ट में था $ ('some_selector') के साथ jQuery के माध्यम से प्राप्त करने में सक्षम। ऑफसेट()।

मैं डार्ट डार्ट के माध्यम से देख रहा था: एचटीएमएल एपीआई, लेकिन अब तक कोई भाग्य नहीं है।

कोई विचार? धन्यवाद

उत्तर

6

उस निर्देशांक प्राप्त करने के लिए Element पर कोई मूल कार्य नहीं है।

यहाँ jQuery.offset() की एक डार्ट के संस्करण:

class Position { 
    num left, top; 
    Position(this.left, this.top); 
} 

Position offset(Element elem) { 
    final docElem = document.documentElement; 
    final box = elem.getBoundingClientRect(); 
    return new Position(box.left + window.pageXOffset - docElem.clientLeft, 
         box.top + window.pageYOffset - docElem.clientTop); 
} 

एक अन्य समाधान का उपयोग करने के लिए है jQuery.offset() के माध्यम से js-interop:

Position jQueryOffset(Element elem) { 
    return js.scoped((){ 
    final offset = js.context.jQuery(elem).offset(); 
    return new Position(offset.left, offset.top); 
    }); 
} 
+1

हाय एलेक्जेंडर , यह dartbug.com/new पर एक उत्कृष्ट सुविधा अनुरोध करेगा :) –

+0

हो गया! http://dartbug.com/7267 –

-2

आप इस डार्ट तत्व विधि का उपयोग पर विचार करना चाहिए: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:html.Element#id_documentOffset

+2

यदि आप लिंक-केवल उत्तर के बजाय सबसे प्रासंगिक भागों को उत्तर में कॉपी करेंगे तो यह एक बेहतर जवाब होगा। –

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