jQuery ci permette di usare il suo wrapper principale per associare eventi ad oggetti JavaScript tramite il metodo bind()
e quindi richiamarli con i metodi trigger()
o triggerHandler()
. Questi eventi sono propri dell'oggetto passato come argomento al wrapper di jQuery e possono essere usati soprattutto in quei casi in cui il nostro codice è basato su eventi (come nel caso dell'Observer Pattern). Vediamone i dettagli.
Abbiamo il seguente oggetto JavaScript:
var Class = {
property: 'Test',
getProperty: function() {
return this.property;
},
setProperty: function(value) {
this.property = value;
}
};
Possiamo associargli un evento chiamato change
per verificare se una sua proprietà ha cambiato il suo valore predefinito:
$(Class).bind('change', function() {
if(this.property !== 'Test') {
alert('Property changed');
} else {
alert(this.property);
}
});
Esempio:
$(Class).triggerHandler('change'); // 'Test'
Class.setProperty('Foo');
$(Class).triggerHandler('change'); // 'Property changed'
In un codice interamente basato sugli eventi, questa caratteristica di jQuery si rivela decisiva.