2011-01-10 9 views
6

मैं ईवेंट ऑब्जेक्ट पर ईवेंट सामान्यीकरण पर एक अच्छा संसाधन ढूंढ रहा हूं। मैं इसे खुद करने की कोशिश कर रहा हूं लेकिन मुझे लगता है कि मैं कुछ याद करने जा रहा हूं।क्रॉस ब्राउज़र इवेंट ऑब्जेक्ट सामान्यीकरण?

यहां मेरे पास अभी तक है, मुझे बताएं कि मुझे कुछ याद आया है या नहीं।

var eFix = function(e) { 
    e = e || window.event; 
    e.target = e.target || e.srcElement; 
    e.offsetX = e.offsetX || e.layerX; 
    e.offsetY = e.offsetY || e.layerY; 
    e.relatedTarget = e.relatedTarget || 
     e.type == 'mouseover' ? e.fromElement : e.toElement; 
    e.target = e.target || e.srcElement; 
    if (target.nodeType === 3) target = target.parentNode; //Safari bug 
    return e; 
}; 

क्या किसी ने पूर्ण सामान्यीकरण कार्य देखा है? क्या मैं कुछ भूल गया?

e.layerX केवल तैनात तत्वों पर काम करता है, तो कम से कम आप एक जोड़ने की जरूरत:

+0

क्या आप jQuery का उपयोग करने के खिलाफ हैं? यह आपके लिए इसका ख्याल रखेगा ... –

+4

@ ब्रैड क्रिस्टी यह सीखने के उद्देश्यों के लिए है और मैं इवेंट सामान्यीकरण – qwertymk

+5

@qwertymk के लिए बस अपना कोड नहीं डालूंगा। लोग आसानी से एक ही सुविधा का उपयोग करने के लिए मनुष्य को ज्ञात हर पुस्तकालय को शामिल करने के लिए बहुत जल्दी हैं। यह वास्तव में दुखद है। – crush

उत्तर

2

वहाँ अपने कोड के साथ एक और समस्या है (हम W3C मॉडल नहीं IE के लिए जा रहे हैं कहने की जरूरत नहीं) कार्य करने के लिए आपके तत्व के लिए "स्थिति: सापेक्ष"। दूसरा e.offsetX केवल IE8 और बाद में में सही ढंग से काम करता है, इसलिए आपको शायद इसे किसी भी तरह से उपयोग करने से बचना चाहिए (हालांकि मैं अभी उनका उपयोग कर रहा हूं, लेकिन इसे केवल विशिष्ट ब्राउज़रों में काम करने की आवश्यकता है)।

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