2011-08-03 10 views
8

मुझे window.event या window.event.srcElement के पीछे प्रेरणा को समझ में नहीं आता है। किस संदर्भ में इसका उपयोग करना चाहिए? डीओएम में यह वास्तव में क्या प्रतिनिधित्व करता है?window.event संपत्ति और इसके उपयोग को समझना

उत्तर

0
function IndentifyMe(){ 
alert("You clicked on " + window.event.srcElement.tagName); 
} 

<body onclick = "IndentifyMe()"> 

शरीर टैग में तत्व की बहुत सारी के साथ इस कोड का प्रयास करें, और अलग-अलग तत्व

0

घटनाक्रम उपयोगकर्ता बातचीत का जीवन हैं क्लिक करने का प्रयास। घटनाओं के बिना, आप पृष्ठ से बातचीत नहीं कर सके।

ईवेंट हैंडलर का उपयोग कुछ जावास्क्रिप्ट को करने के लिए किया जाता है जब कोई निश्चित कार्य होता है। यदि आप कुछ व्यवहार को ट्रिगर करने के लिए चाहते हैं जब उपयोगकर्ता अपने कर्सर को तत्व पर ले जाता है, तो आप ऑनमोउसओवर ईवेंट हैंडलर का उपयोग करते हैं।

"डोम पटकथा: जावास्क्रिप्ट और दस्तावेज़ ऑब्जेक्ट मॉडल के साथ वेब डिजाइन: द्वितीय संस्करण"

15

यहाँ w3school says के बारे में event वस्तु:

घटनाक्रम कार्रवाई है कि जावास्क्रिप्ट के द्वारा पता लगाया जा सकता है, और घटना ऑब्जेक्ट घटना के बारे में जानकारी देता है जो हुआ है।

कभी-कभी जब कोई ईवेंट होता है तो हम जावास्क्रिप्ट निष्पादित करना चाहते हैं, ऐसे जब कोई उपयोगकर्ता बटन पर क्लिक करता है।

आप का उपयोग घटनाओं को संभाल कर सकते हैं:

node.onclick = function(e) { 
    // here you can handle event. e is an object. 
    // It has some usefull properties like target. e.target refers to node 
} 

हालांकि इंटरनेट एक्सप्लोरर हैंडलर को घटना से पारित नहीं है। इसके बजाय आप window.event ऑब्जेक्ट का उपयोग कर सकते हैं जिसे ईवेंट को निकाल दिए जाने के तुरंत बाद अपडेट किया जा रहा है। तो crossbrowser तरह से घटनाओं को संभालने के लिए: अगर इस अंतर को नया ब्राउज़र संस्करणों में बदल दिया गया है लेकिन मूल रूप से, "माइक्रोसॉफ्ट घटना तक पहुँचने मॉडल में

node.onclick = function(e) { 
    e = e || window.event; 
    // also there is no e.target property in IE. 
    // instead IE uses window.event.srcElement 
    var target = e.target || e.srcElement; 
    // Now target refers to node. And you can, for example, modify node: 
    target.style.backgroundColor = '#f00'; 
} 
+5

अलावा कि आप w3schools से आकर्षित, यह यहां सबसे उपयोगी उत्तर है। +1। – duri

+0

"_'e.target' 'node'_' को संदर्भित करता है: यह गलत है। 'यह' 'node' को संदर्भित करता है जबकि 'e.target'' नोड 'के किसी भी बच्चे तत्व को संदर्भित कर सकता है, जिस पर क्लिक किया गया है और क्या ईवेंट बुलबुले या नहीं, आदि – Xufox

+1

क्या यह IE के सभी संस्करणों के लिए सच है ? मुझे एहसास है कि यह एक पुराना सवाल है, सिर्फ उत्सुक है ... इस पर कुछ भी नहीं मिला – aw04

6

सुनिश्चित नहीं हैं कि वहाँ एक विशेष संपत्ति window.event कि पिछले घटना शामिल है जो हुआ था।" (संदर्भ से)

तो, एक ईवेंट हैंडलर ब्राउज़रों में संगत आप इस तरह कुछ करने के लिए आवश्यकता होगी लिखने के लिए:

function doSomething(e) { 
    if(!e) { 
     var e = window.event; 
    } 
    var ele = e.target || e.srcElement; 
    // get the clicked element 
    // srcElement for IE, target for others 
} 
element.onclick = doSomething; 

संदर्भ: http://www.quirksmode.org/js/events_access.html

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