javascript - custom event is not triggered on dojo widget -
मेरे पास डोजो कस्टम विजेट है।
मुझे कस्टम विजेट से एक घटना का उत्सर्जन करना होगा, यह कोड जहां मैंने ईवेंट श्रोता को जोड़ा है
& lt;! DOCTYPE html & gt; & LT; html & gt; & Lt; शीर्ष & gt; & Lt; title & gt; & lt; / title & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" & gt; Var dojoConfig = {async: true, parseOnLoad: true, isDebug: true, संकुल: [{नाम: "कस्टम", स्थान: "/ टेस्ट / जेएस"}}}; & Lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट src = "// स्थानीयहोस्ट: 8080 / डोजो 1.9.0 / डोजो / डोजो.जेएस" & gt; & lt; / स्क्रिप्ट & gt; & Lt; / head & gt; & LT; बॉडी & gt; & LT; स्क्रिप्ट & gt; की आवश्यकता होती है ([ "कस्टम / MyWidget", "डोजो / पर", "डोजो / domconstruct", "डोजो / _base / खिड़की", "डोजो / domReady!"], समारोह (MyWidget, पर, domconstruct, खिड़की) { Var mywidget = नया MyWidget (); mywidget.startup (); domconstruct.place (mywidget.domnode, window.body (), "बाद"); पर (mywidget, "customevent", फ़ंक्शन (डेटा) {console.log ( "प्राप्त सूचना" + डेटा);});}); & Lt; / स्क्रिप्ट & gt; & Lt; / body & gt; & Lt; / html & gt;
और नीचे दिए गए विजेट
परिभाषित करें (["dojo / _base / declare", "dijit / _WidgetBase "," डोजिट / _ऑनडिजिटक्लिक मिक्सीन "," दिजिट / _TemplatedMixin "," dojo / text! ./ widget.html "," डोजो / ऑन "," डोजो / _बेस / लाँग "], फ़ंक्शन (घोषित करें, _विड्डबेस, _ऑनडिजाइटक्लिकिक्स, _TemplatedMixin , टेम्पलेट, ऑन, लैंग) {वापसी घोषित ([_ विजेटबेस, _OnDijitClickMixin, _TemplatedMixin], {templateString: टेम्पलेट, // आपका कस्टम कोड यहां जाता है _onClick: function () {}, postCreate: function () {on (this.searchtextbox , "क्लिक करें", lang.hitch (यह, "sendEvent"));}, sendEvent: function (event) {console.log ("ईवेंट में विजेट पर क्लिक करें" + event); this.emit ("customevent", event। एक्स) } }); });
// widget.html
& lt; div वर्ग = "$ {baseClass}" डेटा-डोजो -Attach सूत्री = "searchtextbox" & gt; & Lt; p & gt; यहां आपका विजेट & lt; / p & gt; & Lt; / div & gt;
समस्या एक पंक्ति है
this.emit ("customevent", event.x)
त्रुटि फेंक रहा है
विजेट इवेंट
आप ईवेंट हैंडलर्स को जोड़ने के लिए dojo / on
का उपयोग नहीं करना चाहिए विजेट के लिए, यह केवल डोम नोड्स के लिए है यदि आप dijit / _WidgetBase
(जैसा आप करते हैं) से बढ़ाते हैं, तो एक ऐसी विधि है जिसे आप उपयोग कर सकते हैं, उदाहरण के लिए:
myWidget.on ("customevent", फ़ंक्शन (डेटा) {console.log ("प्राप्त सूचना" + डेटा);});
विजेट विस्तार अंक
मुझे यकीन नहीं है कि emit ()
फ़ंक्शन क्या करता है, लेकिन ऐसा लगता है कि यह यहां है मुसीबत। के अनुसार आपको सादे कार्यों के साथ अपने एक्सटेंशन अंक लिखना चाहिए उदाहरण के लिए:
postCreate: फ़ंक्शन () (पर (this.searchtextbox, "click", lang.hitch (यह, "_onClick")) ; }, _onClick: function (event) {// यह वह जगह है जहां आप अपना कोड console.log डालते हैं ("विजेट में ईवेंट को क्लिक करें" + ईवेंट); this.onCustomEvent (event.x); }, OnCustomEvent: function () {// यह खाली छोड़ा जा सकता है, इसका विस्तार बिंदु के रूप में उपयोग किया जाएगा}
इस मामले में आप onCustomEvent ()
सही तर्कों के साथ। यह फ़ंक्शन सार्वजनिक उपयोग के लिए है और कस्टम इवेंट हैंन्डलर्स को बाइंड करने के लिए उपयोग किया जा सकता है।
यहां है।
Comments
Post a Comment