YUI 3 Quick Tip: Aggiunta di Impressionante il proprietario
Settembre 29, 2010 at 12:22 di Eric Miraglia | In Development | 3 commentiLuke ( @ ls_n ) ha postato questo frammento di codice in risposta ad una domanda l'altro giorno, e ho pensato che valeva la pena condividere qui come una punta rapida.
Come con la maggior parte selettore basato su modi di dire, un sacco di potenza espressiva YUI tre proviene da ciò che si può fare una volta che hai riferimento ad uno o più HTMLElements - in YUI 3, che significa avere un riferimento Node, che solitamente si riceve via Y.one( selector string ) o Y.all( selector string ) . Così, Y.one("#foo"). doSomethingInteresting è un modello comune.
E 'facile estendere espressività YUI 3, aggiungendo la tua magia proprio al nodo (e / o NodeList). Ecco un modo per rendere la vostra estensione modulare e riutilizzabile.
In primo luogo, creare un nuovo modulo personalizzato (lo chiameremo node++ ):
YUI.add ('node + +', function (Y) { / / Definire una funzione che verrà eseguito nel contesto di una / / Istanza Node: doSomethingAwesome funzione () { Y.log ("fare qualcosa di impressionante qui."); } / / Usa addMethod per aggiungere doAwesomeThing al prototipo Node: Y.Node.addMethod ("doAwesomeThing", doSomethingAwesome); / / Estendere questa funzionalità a NodeLists: Y.NodeList.importMethod (Y.Node.prototype, "doAwesomeThing"); }, '0 .0.1 ', {Richiede: [' node ']});
Con tale definizione sulla pagina, node++ è possibile use in qualsiasi istanza d. Nel tuo codice di implementazione, si dovrebbe fare:
YUI (). Uso ('node + +', function (Y) { / / Uso da un singolo nodo: . Y.one ('# foo') doAwesomeThing (); / / Uso da un NodeList: Y.all ('p') doAwesomeThing ().; });
Si noti che solo l'istanza YUI (s) a cui associare il node++ modulo avrà accesso a doAwesomeThing . Una caratteristica di questo disegno che ti piace come costruire applicazioni complesse è che la logica di attuazione non sarà necessario cambiare, se l'elenco di dipendenza per node++ si evolve - che avranno gestito automaticamente ad use() tempo, e la dipendenza dichiarazione rimane con il codice a cui si riferisce.
Condividi ed estendere: Segnalibro con Del.icio.us | Digg it! | reddit!
3 commenti
Siamo spiacenti, il commento forma è chiusa in questo momento.

Copyright © 2006-2012 Yahoo! Inc. Tutti i diritti riservati. Privacy Policy - Termini di servizio
Powered by WordPress su Yahoo! Web Hosting .

Dove è l'esempio lucido per me spingere? (Durrrr)
Commento di Ives Kristopher - 29 Settembre, 2010 #
Un metodo molto utile, basta stare attenti (per ora) se si sta utilizzando il riferimento di 'questo' dentro il tuo metodo da vedere http://yuilibrary.com/projects/yui3/ticket/2529327
Commento di John Peloquin - 29 Settembre 2010 #
Ho implementato la versione highlight YUI seguendo l'approccio descritto nel post:
http://gist.github.com/613015
Commento di Alberto Santini - 6 ottobre 2010 #