हां, यह ऐसा कुछ है जो मैं आमतौर पर अपने स्वयं के अनुप्रयोगों में बहुत जल्दी सेटअप करता हूं। अब, आप अपने घटनाओं के साथ कैसे पेश बहुत क्या पुस्तकालय या तकनीक आप उपयोग करने का निर्णय पर निर्भर होने जा रहा है, लेकिन मूल अवधारणाओं ही रहेगा।
व्यक्तिगत रूप से, मुझे लगता है कि डाकजेएस चलने का मुर्गा है, इसलिए मैं इसे यहां एक उदाहरण के रूप में उपयोग करने जा रहा हूं। मैं बहुत अधिक कोड शामिल नहीं कर रहा हूं क्योंकि यह ज्यादातर समारोह और बॉयलरप्लेट होगा, लेकिन मुझे आशा है कि आपको यह विचार मिलेगा।
एक, आप अपने ईवेंट को आराम करने के लिए वैश्विक ऐप ऑब्जेक्ट की तरह कुछ बनाना चाहते हैं। कुल मिलाकर यह एक अच्छा अभ्यास है जब आपके जेएस कोड को मॉड्यूलर करना - आपको कुछ ऐसा करना चाहिए जो मॉड्यूल के बीच ब्रोकर के रूप में कार्य करता हो।
define(function() {
var App = {};
return App;
});
अब, इस मॉड्यूल कुछ है जो इसे पॉप्युलेट करने के लिए शुरू होता है में लोड किया जाना चाहिए: यह बहुत सादा और बुनियादी हो सकता है। आप थोड़ी देर के लिए ऐसा नहीं कर सकते हैं, लेकिन अंत में सर्कुलर निर्भरताएं आपको गधे में काटती हैं। इसलिए मैं इसे अपने "मुख्य" मॉड्यूल के समान कुछ भी शामिल करने की अनुशंसा करता हूं। वहां से, अपनी इवेंट सिस्टम शामिल करें और इसे ऐप में जोड़ें।
define(['app', 'events'], function(App, Events) {
App.events = new Events();
});
अब आपके पास एक अच्छा, हल्का ऑब्जेक्ट है जिसमें आप अन्य मॉड्यूल में शामिल कर सकते हैं जो समान ईवेंट ऑब्जेक्ट साझा करते हैं।
define(['app'], function(App) {
// User has clicked the sidebar
App.events.publish('sidebar.clicked'); //
});
और, ओह मैं, पता नहीं है शायद पर क्लिक साइडबार एक डायनासोर, दिखाई तो अपने डायनासोर मॉड्यूल में, आप सुन था/निम्न कार्य करके सदस्यता के बनाता है: तो कहते हैं कि तुम एक साइडबार है सकते हैं:
define(['app'], function(App) {
App.events.subscribe('sidebar.clicked', showDinosaur);
});
होने एक हल्के वस्तु आप मैंने पाया मॉड्यूल के बीच साझा कर सकते हैं एक सफल आधुनीकीकरण जे एस वास्तुकला की कुंजी है। मैं इसे अपनी खुद की परियोजनाओं में वैश्विक ऑब्जेक्ट स्टोर के रूप में उपयोग करता हूं, जो मेरी वेबस्केट मैसेजिंग परत के लिए एक कंटेनर है, और अन्य चीजें जिन्हें मैं प्रत्येक मॉड्यूल में स्पष्ट रूप से व्यक्तिगत रूप से शामिल करने की आवश्यकता नहीं चाहता हूं।
मेरे लिए आपका प्रश्न http://stackoverflow.com/questions/9671995/javascript-custom-event-listener – twil
यदि आप उदाहरणों का उपयोग कर रहे हैं तो एक पर्यवेक्षक पैटर्न का उपयोग करें। यदि आप सिंगलटन का उपयोग कर रहे हैं तो सामान्य घटनाओं – megawac
धन्यवाद का उपयोग करने में कोई समस्या नहीं होनी चाहिए, क्या यह इस तरह jquery का उपयोग करके किया जा सकता है? $ (दस्तावेज़) .addEventListener ("myEvent", myEventHandler, false); ? – fasola81