JSFiddle - React, Tailwind, and code Playground

by springuper

HTML

<input type="button" value="click me" id="trigger" />

JavaScript

// define 'event-tester' module
YUI.add('event-tester', function (Y) {
    var Tester = function () {
        Tester.superclass.constructor.apply(this, arguments);
    };
    Tester.NAME = 'Tester';
    Tester.ATTRS = {
        button: {
            value: null
        }
    };
    Y.extend(Tester, Y.Base, {
        initializer: function () {
            var instance = this,
                nd = instance.get('button');
            
            instance.publish('success', {
                emitFacade: true,
                broadcast: 2 // global scope event
            });
            nd.on('click', function (e) {
                instance.fire('success', { node: nd });
            });
        }
    });
    
    Y.Tester = Tester;
}, '1.0.0', {
    requires: ['node', 'base']
});

YUI().use('yui', 'event', function (Y) {
    // listen global event 'Tester:success'
    Y.Global.on('Tester:success', function (e) {
        console.log('global event');
        console.log(e.node);
    });
});
YUI().use('event-tester', function (Y) {
    // listen YUI instance event 'Tester:success'
    Y.Global.on('Tester:success', function (e) {
        console.log('YUI instance event');
    });
    
    var tester = new Y.Tester({ button: Y.one('#trigger') });
});