मैंने एक बिल्कुल स्थित ड्रॉप-डाउन मेनू लिखा है। मैं एक कस्टम घटना को ट्रिगर कर रहा हूँ जब इस मेनू खोलता है:windows.document पर कस्टम jQuery ईवेंट को कैसे बबल करें?
ps.DropDown.prototype._onOpenComplete = function() {
$(this).trigger('MENU_OPEN', [this]);
}
यह काम करता है महान जब मुझे पता है ps.DropDown का जो उदाहरण लक्षित करने के लिए:
var dd = new ps.DropDown();
$(dd).on('MENU_OPEN', fn);
हालांकि, मैं करने के लिए अपने कस्टम घटना के लिए चाहते हैं window.document पर बबल करें यदि ईवेंट प्रचार से रोका नहीं गया है। उदाहरण के लिए:
var dd = new ps.DropDown();
$(dd).on('MENU_OPEN', function(event, instance) {
// this would stop bubbling to $(window.document)
// event.stopPropagation();
});
$(window.document).on('MENU_OPEN', function(event, instance) {
// bubbled!
});
क्या jQuery के साथ इसे पूरा करने का कोई तरीका है?
संपादित सादृश्य
एक बटन तत्व पर एक क्लिक करके एक उदाहरण जोड़ने के लिए एक घटना को ट्रिगर किया जाएगा। यह घटना पैरेंट-एलिमेंट चेन को तब तक बुलबुला जारी रखेगी जब तक कि यह window.document तक पहुंच न जाए (जब तक किसी ईवेंट श्रोता द्वारा प्रचार रोक दिया जाता है)। मुझे कस्टम इवेंट्स के लिए इस व्यवहार को संश्लेषित करने में दिलचस्पी है कि अगर event.stopPropagation() को नहीं कहा जाता है, तो यह window.document (या $ .event, या कुछ अन्य विंडो ग्लोबल, इससे कोई फर्क नहीं पड़ता) पर बबल होगा
आपका कोड ठीक दिखता है जिसने 'MENU_OPEN' ईवेंट की सदस्यता ली है, उसे '.trigger ('MENU_OPEN)' के साथ ट्रिगर किया जाना चाहिए। – ShankarSangoli
हां, लेकिन मैं ऐसे समाधान की तलाश में हूं जिसके लिए ps.DropDown के उदाहरण के संदर्भ की आवश्यकता नहीं है। मैं ईवेंट को window.document पर बबल करना चाहता हूं। – thesmart