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();
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ù.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |