jQuery: binding multiple events to objects

by gabrieleromanato

JavaScript

var Class = {

    eventTypes: ['start', 'end', 'destroy'],

    create: function() {

        $.each(
        Class.eventTypes, function(i, ev) {
            jQuery(Class).bind(
            ev, Class.events[ev]);
        });


    },

    events: {
        
        start: function() {
            
            alert('Class started');
        },

        destroy: function() {

            $.each(Class.eventTypes, function(i, ev) {

                jQuery(Class).unbind(ev);
                
               

            });
            
            alert('Class events destroyed');

        },

        end: function() {

            alert('Class ended');

        }
    },

    init: function() {
        this.create();
    }
};


Class.init();

setTimeout(function() {
    jQuery(Class).trigger('start');
}, 1000);

setTimeout(function() {
    jQuery(Class).trigger('end');
}, 1000);

setTimeout(function() {
    jQuery(Class).trigger('destroy');
}, 1000);