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.