jQuery: creare eventi custom multipli sugli oggetti

Il costruttore jQuery accetta come parametro anche semplici oggetti JavaScript. Con questa caratteristica possiamo utilizzare il metodo bind() per creare eventi custom sugli oggetti. Possiamo inoltre creare eventi multipli sugli oggetti. Vediamo come fare.

Ecco il nostro oggetto e i suoi eventi:


var Class = {

    eventTypes: ['start', 'end', 'destroy'], // Array di eventi

    create: function() {// Crea gli eventi sfruttando l'array di eventi

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


    },

    events: {

        start: function() {

            alert('Class started');
        },

        destroy: function() { // Rimuove gli eventi

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

                jQuery(Class).unbind(ev);



            });

            alert('Class events destroyed');

        },

        end: function() {

            alert('Class ended');

        }
    },

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

Esempio pratico:


Class.init();

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

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

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

Potete visionare l'esempio finale in questa pagina.

Torna su