src/index.js
function (name, fn, ctx) {
        // If the context is not passed, use `this`.
        ctx = ctx || this;

        var self = this;

        function onHandler() {
            fn.apply(ctx, arguments);
            self.off(name, onHandler);
        }

        this.on(name, onHandler, ctx);

        return this;
    }
function (name, fn, ctx) {
        // If the context is not passed, use `this`.
        ctx = ctx || this;

        var self = this;

        function onHandler() {
            fn.apply(ctx, arguments);
            self.off(name, onHandler);
        }

        this.on(name, onHandler, ctx);

        return this;
    }
function ( name , fn , ctx ) { // If the context is not passed, use `this`. ctx = ctx || this ; var self = this ; function onHandler ( ) { fn . apply ( ctx , arguments ) ; self . off ( name , onHandler ) ; } this . on ( name , onHandler , ctx ) ; return this ; }
Register listener.
Remove them after once event triggered.

@param {string} name
@param {Function} fn
@param {Object} [ctx]
Register listener . Remove them after once event triggered .