Gli elementi jQuery sono oggetti e come tali possono essere estesi come qualsiasi altro oggetto JavaScript. Questa soluzione ci permette di utilizzare lo stesso approccio dei plugin, ma con un'importante differenza: il metodo aggiunto diviene proprio di un solo tipo di elemento e non di tutti gli elementi jQuery. Vediamo in dettaglio questa soluzione.
Possiamo utilizzare il metodo $.extend()
per il nostro scopo. In questo caso il riferimento $(this)
punta direttamente all'oggetto jQuery selezionato:
var test = $('#test'); // oggetto-elemento jQuery
$.extend(test, {
move: function() { // $(this) si riferisce a test
$(this).animate({
left: $(document).width() - $(this).width()
}, 800, 'linear', function() {
$(this).animate({
left: 0
}, 800, 'linear');
});
}
});
$('#run').click(function() {
test.move(); // accesso diretto al nuovo metodo
});