चूंकि हम सिर्फ घटनाओं के बारे में बात करते थे, अब कस्टम घटनाओं का उल्लेख करने का एक अच्छा समय है। हमने अब तक जिन भी घटनाओं के बारे में बात की है, वे बोलने के लिए "वास्तविक" घटनाएं हैं। DOM में होने वाली घटनाएँ वास्तविक चीज़ों पर आधारित होती हैं, जो एक क्लिक या की प्रेस की तरह होती हैं। इन घटनाओं को jQuery में कृत्रिम रूप से "ट्रिगर" किया जा सकता है। उदाहरण के लिए, एक बटन पर "नकली" क्लिक करने के लिए, आप यह कर सकते हैं:
$("#some-button").trigger("click");
फिर उस बटन पर स्थित कोई भी क्लिक हैंडलर आग लगा देगा जैसे कि कोई उपयोगकर्ता वास्तव में उस बटन पर क्लिक करता है। लेकिन अगर हमने किया:
$("#some-button").trigger("dance");
फिर क्या होता है? "नृत्य" एक "वास्तविक" घटना नहीं है। लेकिन कोई त्रुटि नहीं फेंकी जाएगी। यह सिर्फ इतना होता है कि उस बटन से बंधा कोई "डांस" हैंडलर नहीं होता है। लेकिन वहाँ हो सकता है और यह अनिवार्य रूप से एक कस्टम घटना है। एक नाम के साथ एक घटना जो आप अभी बनाते हैं।
तुम ऐसा क्यों करोगे? अधिकतर संगठनात्मक कारण। शायद आप अपने जावास्क्रिप्ट को अलग करना पसंद करते हैं जो घटनाओं और कार्यों को संभालता है, और आपका जावास्क्रिप्ट जो डेटा और प्रशासनिक सामान को संभालता है। यह बहुत ही उचित है। यदि यह बटन संभवतः "सेटिंग सहेजें" बटन था, तो आप बस "सेव-सेटिंग्स" नामक एक कस्टम ईवेंट को बंद कर सकते हैं और कहीं और एक हैंडलर होता है जो उस ईवेंट का इंतजार करता है और डेटा की वास्तविक बचत करता है। यह अनिवार्य रूप से हमने वीडियो से उदाहरण में किया है।
कस्टम ईवेंट के लिए एक और उपयोग मामला जेनेरिक यूआई घटकों को संलेखन कर रहा है। मैं इस ब्लॉग पोस्ट में उस बारे में बात करता हूं।
शायद आप UI घटक के रूप में एक अकॉर्डियन प्रभाव बना रहे हैं। अकॉर्डियन वही करता है जो क्लिक्स / टैप पर पैनल को खोलता और बंद करता है। आपका UI घटक बहुत अच्छी तरह से करता है। अब एक डेवलपर जो उस समझौते का उपयोग करता है, उसके पास विशेष और अनोखी चीजें हो सकती हैं जो वे उसके साथ होना चाहते हैं। मान लें कि वे खाता सेटिंग के लिए समझौते का उपयोग कर रहे हैं, और जब कोई उपयोगकर्ता किसी पैनल को बंद करता है, तो वे उस पैनल में मौजूद तत्वों से डेटा को बचाना चाहते हैं। एक पारंपरिक मॉडल उस एक्टेशन यूआई घटक के लेखक के लिए हो सकता है जब वह एक्शन होता है। जब आप समझौते को आरंभ करते हैं, तो आप कॉलबैक कार्यों में गुजरते हैं जो आप चाहते हैं कि जब चीजें होती हैं। वह नीचे जाने के लिए एक सड़क है। एक और सड़क समझौते के लिए होगा कि वह सभी प्रासंगिक कार्यों के लिए कस्टम ईवेंट को स्वचालित रूप से आग लगा दे।जब वह पैनल बंद हो जाता है, तो वह आग लगा सकता हैpanelClosed
घटना के तत्व पर ही। तब इसके साथ काम करने वाले डेवलपर्स सिर्फ उन घटनाओं के लिए बाध्य हो सकते हैं। यह सिर्फ एक और सड़क है जिसे आप संगठन के कारणों से नीचे ले जा सकते हैं जो काफी सुरुचिपूर्ण हो सकती है।