Le due lezioni precedenti dedicate alla classe Element ci hanno fornito gli strumenti di base fondamentali per compiere operazioni con gli elementi tramite MooTools. Ma i metodi offerti da Element sono davvero molti e permettono di effettuare qualsiasi operazione di editing del DOM di una pagina. Vediamo ora come mettere in pratica alcuni di essi:
// otteniamo il riferimento al nostro elemento
var el = $('myElement');
// inseriamo l'elemento 'el' in un elemento parente, in modo che risulti il primo elemento figlio
el.inject(myParentElement, 'top');
// ora otteniamo tutti i suoi elementi figli
var children = el.getChildren();
// cloniamo l'elemento in una nuova variabile
var clone = el.clone();
// infine rimuoviamolo dal DOM
el.dispose();
E' inoltre importante ricordare che ogni metodo della classe Element restituisce l'istanza che rappresenta il nostro elemento, permettendoci dunque di "incatenare" le varie chiamate:
el.setStyle('color', 'blue').inject(myParentElement).dispose();
Element.Storage
Dalla versione 1.2, MooTools ci offre un nuovo e potente strumento per effettuare le nostre elaborazioni con gli elementi: l'oggetto Element.Storage. Immaginate che ogni elemento della nostra pagina abbia a disposizione un deposito (uno storage appunto) nel quale possiamo immagazzinare qualsiasi variabile, oggetto o valore e recuperarlo all'occorrenza. I metodi che abbiamo a disposizione per lavorare con lo storage degli elementi sono store e retrieve: il primo permette di salvare una variabile nello storage, il secondo di recuperarne il valore o il riferimento. Vediamo subito un esempio pratico:
// salviamo un semplice valore con la keyword 'initWidth' che rappresenta il valore della larghezza del nostro elemento
el.store('initWidth', el.getStyle('width').toInt());
// successivamente recuperiamo questo valore ed effattuiamone l'alert
alert(el.retrieve('initWidth'));
Ovviamente è possibile salvare all'interno dello storage qualsiasi cosa vogliamo: array,oggetti, stringhe, numeri, riferimenti a funzioni, istanze, Hash e cosi via. Nel successivo esempio viene salvata un'istanza della classe Fx.Tween per creare un'animazione e successivamente azionata:
// salviamo l'istanza
el.store('myEffect', new Fx.Tween(el, {duration: 4000}));
// recuperiamola
var fx = el.retrieve('myEffect');
// successivamente azioniamola...
fx.start('width', [20, 200]);
Utilizzando l'Element.Storage siamo sicuri che i fastidiosi Memory Leak prodotti dai browser (specialmente da Internet Explorer) siano azzerati o ridotti al minimo. Questo permette di risparmiare l'occupazione della memoria e di aumentare la produttività della nostra applicazione. L'Element.Storage è dunque uno strumento molto utile, il cui utilizzo è fortemente consigliato nella gran parte delle applicazioni in cui abbiamo la necessità di lavorare con gli elementi ed i valori che siano in qualche modo ad essi collegati: una volta provato non si abbandonerà più.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: