event:Selectors è una libreria Javascript appena rilasciata da Justin Palmer.Pensata per essere integrata al meglio con Prototype, rappresenta, come spiega l'autore, una sorta di versione migliorata di Behaviour, a cui pure si ispira esplicitamente.Cosa si può fare allora con event:Selectors? Applicare eventi come mouseover, mouseout o click ad elementi specifici della pagina utilizzando una sintassi simile a quella usata per la creazione di selettori CSS. Il post riporta anche una serie di esempi di codice.

Continua a leggere CSS event:Selectors

Categoria: Scripting

Qualche mese fa ho tradotto per PRO una serie di articoli di Peter-Paul Koch usciti originariamente su Digital Web Magazine. Uno di essi è dedicato ad un tema caro a PPK e ad altri sostenitori del cosiddetto Unobtrusive Javascript: la separazione del codice Javascript dalla struttura, ovvero dal codice HTML della pagina. La tesi di fondo è questa: a che serve creare documenti standard compliant, validi, con codice pulito e ben strutturato se poi lo si riempie di istruzioni Javascript che potrebbero invece essere tenute separate? Sia benvenuta allora Behaviour, una libreria creata da Ben Nolan che offre una soluzione semplice e indolore per ottenere la tanto agognata separazione. Tutto è ottenuto grazie all'uso dei selettori CSS: vengono usati per specificare gli elementi a cui aggiungere gli eventi Javascript. Ecco l'esempio di codice proposto da Nolan: <li> <a onclick="this.parentNode.removeChild(this)" href="#">Click me to delete me</a> </li> Una semplice lista in cui cliccando sul li lo si fa scomparire. Come si vede, l'istruzione Javascript è richiamata con l'evento onclick inserito in un a. Roba triviale e stravista. Usando Behaviour, invece, potremmo mantenere il codice molto più pulito: <ul id="example"> <li> <a href="/someurl">Click me to delete me</a> </li> </ul> OK, Javascript è scomparso, ma come richiamiamo la funzione? Basta creare un JS da collegare alla pagina in cui andremo a inserire una serie di regole, così: var myrules = { '#example li' : function(el){ el.onclick = function(){ this.parentNode.removeChild(this); } } }; Behaviour.register(myrules); Attenzione alla seconda riga. Mettendo all'inizio #example li aggiungo l'evento a tutti gli elementi li discendenti dell'ul con id 'example'. Per altre demo si può vedere questa pagina. La documentazione è scarna, ma le poche istruzioni d'uso presenti sono molto chiare e più che sufficienti per iniziare a sperimentare. Segnalo anche un articolo di Alessandro Fulciniti, ricchissimo di link e dedicato alle ultime evoluzioni di Javascript.

Continua a leggere Behaviour: separare Javascript da HTML

Categoria: Scripting