2015-10-16 7 views
5

मुझे आश्चर्य है कि कुछ कोड कुछ ब्राउज़रों में क्यों काम करते हैं? अर्थात। यहां तक ​​कि click() फ़ंक्शन पर कोई पैरामीटर नहीं है, हालांकि event चर मौजूद है और dosomething ईवेंट ट्रिगर ऑब्जेक्ट पर विधि कहा जाता है?पैरामीटर के रूप में पारित होने पर भी 'ईवेंट' चर उपलब्ध क्यों है?

$(<selector>).click(function() { 
    $(event.target).<dosomething> 
}); 
+2

_global_ 'event'। कंसोल – Tushar

+0

में 'event' आज़माएं जो यह समझाता नहीं है कि यह केवल कुछ ब्राउज़रों/संस्करणों में क्यों काम करता है –

+0

@ सेर्गेई पॉक: यह एक माइक्रोसॉफ्टवाद है। – Amadan

उत्तर

15

'घटना' क्यों है चर उपलब्ध भी जब एक पैरामीटर के रूप में पारित नहीं किया?

यह विश्वसनीय नहीं है। उदाहरण के लिए, वह फ़ायरफ़ॉक्स फ़ायरफ़ॉक्स पर असफल हो जाएगा।

माइक्रोसॉफ्ट ने वैश्विकevent चर का उपयोग किया। डीओएम 2 ने इसे हैंडलर के लिए एक तर्क के रूप में परिभाषित किया। क्रोम ने एमएस-विशिष्ट कोड को हड्डी फेंकने और दोनों को करने का फैसला किया। फ़ायरफ़ॉक्स नहीं था।

यहां तक ​​कि ब्राउज़र पर जहां कोड काम करता है, ध्यान दें कि event एक कच्चे ईवेंट ऑब्जेक्ट होगा, न कि jQuery- बढ़ाया गया। इसका मतलब है कि, उदाहरण के लिए, IE8 पर आप event.preventDefault पर कॉल नहीं कर सकते क्योंकि IE8 उस फ़ंक्शन की आपूर्ति नहीं करता है। jQuery अगर आप तर्क स्वीकार करते हैं, क्योंकि jQuery उन सुविधाओं पर अनुपलब्ध ब्राउज़र पर भी मानक सुविधाओं के साथ एक ईवेंट ऑब्जेक्ट प्रदान करता है।

+0

जानकारी के लिए धन्यवाद :), यह नहीं पता था – Tushar

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

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