jQuery: creare widget HTML

jQuery: creare widget HTML

I widget HTML sono frammenti DOM o piccole porzioni di contenuto che possono essere aggiunti alla struttura di un elemento della pagina. Usare i widget ci permette di evitare di usare ripetutamente il wrapper $() o il metodo html() per creare nuovo contenuto con jQuery, concentrandoci invece sull'efficacia e l'automatizzazione del processo. Vediamo un esempio.

Creiamo il plugin Widget:


(function($) {

	$.fn.Widget = function(options) {
	
		var that = this;
		
		var settings = {
			element: '<div/>',
			attributes: {},
			content: ''
		};
		
		options = $.extend(settings, options);
		
		return that.each(function() {
		
			$(options.element, options.attributes).
			html(options.content).
			appendTo(that);
		
		});
	
	};

})(jQuery);

Il plugin sfrutta una caratteristica del wrapper jQuery: se il secondo parametro passato dopo l'elemento da creare è un oggetto letterale, le sue proprietà verranno usate per definire gli attributi e i metodi dell'elemento.

Per esempio, dato questo elemento HTML:


<div id="test"></div>

applicando il plugin in questo modo:


$(function() {

	$('#test').Widget({
		element: '<p/>',
		attributes: {id: 'foo'},
		content: 'Test'
	});

});

avremo la seguente struttura modificata:


<div id="test">
	<p id="foo">Test</p>
</div>
Torna su