2009-06-03 16 views
17
<script> 
function Hello(){ 
    var caller = arguments.callee.caller; 
    alert(caller); 
} 
</script> 

<input type="button" id="btnHello" value="Hello" onclick="Hello()" /> 

कैसे बाहर नमस्कार समारोह में किसी भी तर्क से गुजर के साथ ऊपर हैलो समारोह से बटन आईडी प्राप्त करने के लिएफोन करने वाले घटना और डोम तत्व आईडी

+2

वैसे, arguments.callee.caller फ़ंक्शन का संदर्भ है, यदि कोई है, जिसे वर्तमान फ़ंक्शन कहा जाता है। यह सभी ब्राउज़रों में लागू नहीं किया गया है, और वर्षों से ecma स्क्रिप्ट लोगों द्वारा बहिष्कृत किया गया है। – kennebec

उत्तर

26

एक घटना वस्तु नमस्ते करने के लिए पारित हो जाता है कैसे प्राप्त करें स्वचालित रूप से कार्य करें। आपको इसे एक तर्क के रूप में प्राप्त करने की आवश्यकता है और फिर तत्व को पकड़ने के लिए कुछ क्रॉस-प्लेटफ़ॉर्म कार्य करें। एक जेएस ढांचा आपको यहां मदद करेगा।

function Hello(e){ 
    var caller = e.target || e.srcElement; 
    console.log(caller); 
} 

संपादित
+1 एंड्रयू नीचे टिप्पणी। सर्वोत्तम अभ्यास के लिए addEventListener और attachEvent का उपयोग करें।

+2

ईवेंट ऑब्जेक्ट केवल तभी पारित किया जाता है जब इसका उपयोग btnid.onclick = function (e) {alert (e.target)} जैसा किया जाता है; लेकिन जब हम ईवेंट को इनलाइन के रूप में लागू करते हैं तो ईवेंट ऑब्जेक्ट कैसे प्राप्त करें। – Jineesh

+4

आईआईआरसी, आप 'ऑनलिक' विशेषता को "हैलो (ईवेंट)" पर सेट करके प्राप्त कर सकते हैं। –

+2

इनलाइन ईवेंट हैंडलर का उपयोग करने के बजाय अविभाज्य जावास्क्रिप्ट के साथ ईवेंट संलग्न करें, फिर आप ईवेंट कॉलबैक पर दिए गए ईवेंट ऑब्जेक्ट का उपयोग कर सकते हैं। –

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