2013-06-17 11 views
6

के भीतर किसी तत्व पर क्लिक कर रहा हूं, मेरे पास एक सेट ऊंचाई और चौड़ाई के साथ एक तत्व है (चलिए आईडी "टेस्ट" के साथ div कहते हैं)। इस तत्व के भीतर यादृच्छिक रूप से रखा गया है अन्य (छोटे) तत्व हैं (मान लें कि आईडी का "आंतरिक 1", "आंतरिक 2", "आंतरिक 3") है, लेकिन वहां व्हाइटस्पेस भी है, जहां कोई तत्व नहीं है। मैं एक ऐसा कार्य करना चाहता हूं जो मुख्य तत्व पर क्लिक करने से आग लगती है, लेकिन फिर गीलेर का पता लगाता है, मैं सफेद जगह पर क्लिक कर रहा हूं, या यदि नहीं, तो आंतरिक तत्व पर क्लिक करके और यदि ऐसा है, तो आंतरिक तत्व की आईडी वापस कर दें।पता लगाएं कि क्या मैं किसी तत्व

ओह और आंतरिक तत्व गतिशील रूप से जेनरेट किए गए हैं इसलिए मुझे आईडी के हाथ से पहले पता नहीं है, मुझे पता है कि वे या तो div या spans हैं ... (उदाहरण के साथ ही, लेकिन मेरे पास कई प्रकार के तत्व होंगे)।

सभी को धन्यवाद।

संपादित करें:

मैं बहुत प्रयास नहीं किया है के बाद से मैं पता नहीं है कैसे जावास्क्रिप्ट के माध्यम से एक आंतरिक क्लिक का पता लगाने कॉल करने के लिए ..

(जब से तुम मैं क्या मतलब पोस्ट करने के लिए :) मुझे याद दिलाने के लिए Xotic750 धन्यवाद)

लेकिन यहाँ एक उदाहरण है:

<div id="test"> 
    <div id="inner1"></div> 
    <span id="inner2"></span> 
    <div id="inner3"></div> 
</div> 
<style> 
div#test { 
    width:300px; 
    height:400px; 
    position:relative; 
    display:block; 
    border:1px solid blue; 
} 
div#test div, div#test span { 
    display:block; 
    position:absolute; 
    border:1px solid red; 
} 
div#inner1 { 
    top:15px; 
    left:15px; 
    height:15px; 
    width:15px; 
} 
span#inner2 { 
    top:65px; 
    left:65px; 
    height:15px; 
    width:15px; 
} 
div#inner3 { 
    top:155px; 
    left:155px; 
    height:15px; 
    width:15px; 
} 
</style> 

http://jsfiddle.net/BgbRy/2/

+1

आपने अभी तक क्या प्रयास किया है? क्या आपके पास कोई HTML और CSS है जिसे आप एक उदाहरण के रूप में प्रदान कर सकते हैं? – Xotic750

उत्तर

23

मुझे लगता है कि यह तुम क्या मतलब है?

var test = document.getElementById('test'); 
 

 
function whatClicked(evt) { 
 
    alert(evt.target.id); 
 
} 
 

 
test.addEventListener("click", whatClicked, false);
div#test { 
 
    width: 300px; 
 
    height: 200px; 
 
    position: relative; 
 
    display: block; 
 
    border: 1px solid blue; 
 
} 
 

 
div#test div, 
 
div#test span { 
 
    display: block; 
 
    position: absolute; 
 
    border: 1px solid red; 
 
} 
 

 
div#inner1 { 
 
    top: 15px; 
 
    left: 15px; 
 
    height: 15px; 
 
    width: 15px; 
 
} 
 

 
span#inner2 { 
 
    top: 65px; 
 
    left: 65px; 
 
    height: 15px; 
 
    width: 15px; 
 
} 
 

 
div#inner3 { 
 
    top: 155px; 
 
    left: 155px; 
 
    height: 15px; 
 
    width: 15px; 
 
}
<div id="test"> 
 
    <div id="inner1"></div> 
 
    <span id="inner2"></span> 
 
    <div id="inner3"></div> 
 
</div>

+0

बिल्कुल मुझे क्या चाहिए! बहुत आभारी!! –

2

अपने टेस्ट div के लिए एक onClick हैंडलर जोड़ें और आंतरिक तत्वों पर जाल क्लिक तक बुदबुदाती घटना का उपयोग करें। आप ईवेंट ऑब्जेक्ट से क्लिक किए गए तत्व को निकाल सकते हैं।

document.getElementById("Test").onclick = function(e) { 
    e = e || event 
var target = e.target || e.srcElement 
// variable target has your clicked element 
    innerId = target.id; 
    // do your stuff here. 
    alert("Clicked!"); 

} 
+0

भी काम करता है, हालांकि मुझे आईडी नहीं मिलती है, लेकिन एक डोम ऑब्जेक्ट है, इसलिए मुझे जो चाहिए वह पाने के लिए और कदम उठाएंगे, फिर भी धन्यवाद !! –

+1

यह अनिवार्य रूप से एक्सोटिक के जवाब जैसा ही है, बस थोड़ा अलग मार्ग से पहुंचा। मैंने आईडी निकालने के लिए एक अतिरिक्त पंक्ति जोड़ा है। –

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