2012-05-22 13 views
28

मैं कुछ जे एस कोड में यह भर में आया था मैं पर काम कर रहा था:जावास्क्रिप्ट में, event.isTrigger क्या है?

if (typeof(e.isTrigger) == 'undefined') { 
// do some stuff    
} 

यह jQuery का हिस्सा लगता है। जहां तक ​​मैं देख सकता हूं कि यह आपको बताता है कि कोई घटना उपयोगकर्ता या स्वचालित रूप से उत्पन्न हुई है या नहीं।

क्या यह सही है? और यह देखते हुए कि यह दस्तावेज नहीं है, क्या jQuery एपीआई के पर्दे के पीछे बिना चीजों को खोजने का कोई तरीका है?

+6

कि सुंदर है बदसूरत। 'अगर (! e.isTrigger) 'यह कैसे लिखा जाना चाहिए। अगर jQuery कभी भी इसे 'झूठी' पर सेट करना शुरू कर देता है, तो यह कोड एक सुंदर गन्दा तरीके से टूट जाएगा। – meagar

+6

'e.isTrigger' को दस्तावेज नहीं किया गया है, इसलिए भविष्य में रिलीज में रखने का वादा नहीं किया जाता है और इसका उपयोग आपके उत्पादन कोड में नहीं किया जाना चाहिए। – rhgb

उत्तर

30

jQuery में 1.7.2 (असीमित) लाइन 3148 में event.isTrigger = true; ट्रिगर फ़ंक्शन के भीतर घोंसला है। तो हाँ, आप सही हैं - यह केवल तभी ध्वजांकित होता है जब आप .trigger() का उपयोग करते हैं और घटनाओं को संभालने के तरीके को निर्धारित करने के लिए आंतरिक रूप से उपयोग किया जाता है।

3

यदि आप jQuery github प्रोजेक्ट को देखते हैं, तो trigger.js फ़ाइल लाइन 49 (link here) के अंदर आप पा सकते हैं कि ट्रिगर की गणना कैसे की जाती है।

enter image description here

आप के माध्यम से अपने जावास्क्रिप्ट में और डिबग एक ट्रिगर जोड़ दें, तो आप देख सकते हैं कि ब्रेकपाइंट (this SO question के लिए jQuery-2.1.3.js में जाँच) इस codeline तक पहुँच जाता है

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