jQuery: associare eventi agli oggetti

jQuery ci permette di associare eventi agli oggetti JavaScript.

jQuery di Gabriele Romanato

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.