2013-02-09 29 views
16

जब आप div नाम जानते हैं, तो div के स्थान को ढूंढना काफी आसान है। लेकिन क्या डिवी आईडी प्राप्त करने का कोई आसान तरीका है जब मुझे पता है कि स्क्रीन के एक्स/वाई तार हैं?स्थान से div नाम से बाहर निकलने का कोई तरीका है (x, y cords)

# # आइटम 1 'नामक divs की एक श्रृंखला के भीतर' # आइटम 1 'से' # आइटम 50 'के लिए कोई ओवरलैपिंग divs नहीं होगा, जिसे एक बोर्ड (एक अन्य div) #HarbourRadar कहा जाता है। प्रत्येक div #Items में एक से अधिक स्टैक्ड छवि हो सकती है।

वैसे भी किसी स्थान से div को खोजने का कोई संकेत बहुत सराहना की जाएगी।

निम्नलिखित कोड (इस तरफ के नीचे दिए गए उत्तर से लिया गया) div #HarbourRadar की आईडी प्राप्त करता है, जो आंशिक रूप से सही है क्योंकि div #marker उस पर आगे बढ़ रहा है, लेकिन div #marker को वापस नहीं करता है यह चुना जाता है - यानी एक उच्च जेड-इंडेक्स वाला।

var pos = $("#marker").position(); 
alert(document.elementFromPoint(pos.left, pos.top).id); 
+0

आप निर्देशांक हुए इसे खोजने का क्यों चाहते हो? आप निर्देशांक कैसे प्राप्त करते हैं? –

+0

यह सुनिश्चित नहीं है कि यह काम करेगा, लेकिन क्या आपने बॉडी टैग पर एक क्लिक हैंडलर जोड़ने का प्रयास किया है और फिर 'लक्ष्य' प्रॉपर्टी को जांचने के लिए यह देखने के लिए कि क्या यह आपको मूल स्रोत देता है? – vansimke

+0

@ लार्स, ठीक है, मैं एक ग्रिडबेस बोर्ड पर काम कर रहा हूं, इसलिए मुझे एक्स, वाई बहुत अच्छी तरह से पता है। यानी एक मार्कर से स्थान प्राप्त करना इस तरह होगा। var pos = $ ("# marker")। स्थिति(); अलर्ट ('एक्स कॉर्ड:' + pos.posX); – Marker

उत्तर

18

हाँ, document.elementFromPoint विधि का उपयोग करना संभव है।
इस प्रकार यह Microsoft द्वारा प्रलेखित किया गया है। यहां Mozilla documentation है।
फ़ंक्शन लगभग पूरी तरह से संगत है, जैसा कि आप this browser comparison में देख सकते हैं।

यहाँ MDN डॉक्स से कुछ नमूना कोड है:

function changeColor(newColor) { 
 
    elem = document.elementFromPoint(2, 2); 
 
    elem.style.color = newColor; 
 
}
<p id="para1">Some text here</p> 
 
<button onclick="changeColor('blue');">blue</button> 
 
<button onclick="changeColor('red');">red</button>

+0

ग्रेट उत्तर, मैंने इससे पहले कभी नहीं सुना होगा :) –

+0

मैं भी सोच रहा था, जब मैं पहली बार था। लेकिन मुझे अभी भी इस बात की संगतता के बारे में संदेह है। –

+0

यहां एक नज़र डालें http://www.zehnet.de/2010/11/19/document-elementfrompoint-a-jquery-solution/ – dfsq

2

इस मौजूदा StackOverflow बातचीत पर एक नजर है आप पा सकते हैं यह मदद करता है:

Determine which element the mouse pointer is on top of in Javascript

यह जावास्क्रिप्ट फ़ंक्शन document.elementFromPoint का उपयोग कर रहा है और इसमें बहुत अच्छा है डेमो जो एक कामकाजी उदाहरण दिखाता है।

jsFiddle यूआरएल है: बेला से http://jsfiddle.net/MPTTp/

कोड:

$(window).click(function(e) { 
    var x = e.clientX, y = e.clientY, 
     elementMouseIsOver = document.elementFromPoint(x, y); 

    alert(elementMouseIsOver); 
}); 

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

  • कोई संबंधित समस्या नहीं^_^