Estendere gli elementi jQuery: un'alternativa ai plugin

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
});​
Torna su