2010-06-30 14 views
5

जब मैं लिखनेफ़ंक्शन (ई) {e.something ...} ई क्या है?

$("#new_lang").click(function(e) 
{ 
    alert("something"); 
    e.stopPropagation(); 
}); 

यहाँ क्या है, और यही कारण है कि समारोह काम इसके बिना नहीं करता है? मैं ई के बजाय कुछ क्यों लिख सकता हूं?

+1

आप ई के बजाय कुछ भी लिख सकते हैं, बस पूरे फंक्शन में नए नाम का उपयोग करें – galambalazs

+0

@galambalazs - असल में आप कोई पैरामीटर नहीं उपयोग कर सकते हैं, मैं आपको नहीं कह रहा हूं * चाहिए *, लेकिन आप * कर सकते हैं * । –

+0

नहीं यदि आप स्टॉपप्रॉपेशन करना चाहते हैं ... तो इसके लिए आपको ईवेंट ऑब्जेक्ट की आवश्यकता है। या तर्क का प्रयोग करें [0], लेकिन चलो उसे भ्रमित नहीं करते .... – galambalazs

उत्तर

9

eevent object कि हैंडलर प्राप्त करता है। आपको विशेष रूप से परिवर्तनीय नाम के रूप में "ई" का उपयोग करने की आवश्यकता नहीं है, आप इसे अपनी इच्छानुसार कुछ भी कॉल कर सकते हैं (जब तक कि यह कीवर्ड की कोई संख्या न हो!), कई लोग इसे event कहते हैं।

हाँ, आप कर सकते हैं यह बिना नहीं है, क्योंकि यह पहला तर्क है, arguments[0] भी काम करता है, लेकिन मुझे लगता है कि मार्ग जाना नहीं होता। You can see this working here, लेकिन फिर से मैं केवल तर्क का उपयोग करता हूं जैसे कि वर्तमान में यह बहुत स्पष्ट है।

+1

... अभी खुश हैं? :) – galambalazs

+2

@galambalazs - के बारे में? मुझे परवाह नहीं है कि * मेरा * उत्तर एक उत्तर के रूप में चुना गया है ... मुझे परवाह है कि एक ** अच्छा ** उत्तर चुना गया है। मैं अक्सर नीचे वोट नहीं करता (मेरी प्रोफ़ाइल जांचता हूं), यहां या तो नहीं था ... लेकिन जब अगला गूगलर प्रश्न के उत्तर की तलाश में आता है, तो साइट ** बेहतर, पूर्ण * * एक को उनके लिए शीर्ष पर रहने के लिए चुना जाता है (स्वीकार किए जाने के माध्यम से)। मुझे लगता है, जैमीक और टीजे। सभी विवरण उस फिट बैठते हैं, और अगर उनमें से कोई भी स्वीकार किया गया तो मैं खुश रहूंगा। –

+0

इसके बारे में कोई तर्क नहीं है ... मैं पूरी तरह से आपसे सहमत हूं। :) – galambalazs

3

e उस उदाहरण में ईवेंट ऑब्जेक्ट (link to docs) क्लिक ईवेंट के लिए है। किसी भी फ़ंक्शन तर्क के साथ, आप जो भी नाम चाहते हैं उसका उपयोग कर सकते हैं। यदि आपको इसके साथ कुछ करने की आवश्यकता नहीं है (उदाहरण के लिए, यदि आपको stopPropagation पर कॉल करने की आवश्यकता नहीं है), तो आप इसे पूरी तरह से बंद कर सकते हैं।

3

यह ईवेंट ऑब्जेक्ट है।

http://api.jquery.com/category/events/event-object/

+3

यह इतना ऊंचा क्यों है? यह केवल प्रश्न के 1/3 का जवाब देता है ... –

+2

मैंने ऊपर उठाया है, क्योंकि यह पहला जवाब था। – Simon

+1

मैंने अपडेट किया क्योंकि लंबे विवरण देने की कोई आवश्यकता नहीं है, यह दायरे से बाहर है और इसकी पहले से ही लिखी गई है, इसलिए –

6

ई, इस संदर्भ में, क्लिक ईवेंट द्वारा उठाए गए ईवेंट ऑब्जेक्ट है। यह इसके बिना पूरी तरह से अच्छी तरह से काम करेंगे (हालांकि, अपने उदाहरण में आप stopPropagation करने में असमर्थ होगा):

$("#new_lang").click(function() 
{ 
    alert("something"); 
}); 

आप किसी भी नाम ई के लिए, के रूप में आप किसी भी समारोह परम

$("#new_lang").click(function(eventObj) 
{ 
    alert("something"); 
    eventObj.stopPropagation(); 
}); 
0
के साथ होता स्थानापन्न कर सकते हैं http://api.jquery.com/bind/ से फिर से के रूप में पिछले प्रश्न पर लिंक

:

हैंडलर कॉलबैक फ़ंक्शन भी ले मापदंडों कर सकते हैं। जब फ़ंक्शन कहा जाता है, तो जावास्क्रिप्ट ईवेंट ऑब्जेक्ट पहले पैरामीटर पर पारित किया जाएगा।

घटना वस्तु के रूप में पर्याप्त संदर्भ आमतौर पर उपलब्ध है जब हैंडलर के लिए बाध्य है पता वास्तव में क्या किया जाना जब हैंडलर शुरू हो रहा है की जरूरत है, अनावश्यक और पैरामीटर लोप अक्सर है। हालांकि, ईवेंट के आरंभ होने पर उपयोगकर्ता के पर्यावरण के बारे में अधिक जानकारी एकत्र करने के लिए कभी-कभी आवश्यक हो जाता है।

उस पृष्ठ पर बहुत उपयोगी जानकारी है। :)

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