L'effetto di ricerca dal vivo non è una novità nelle app desktop. In Mac OS X o Windows Vista / 7, basta digitare poche lettere in una casella di ricerca, quasi istantaneamente si ottiene il risultato della ricerca al volo. Dovendo premere il pulsante di invio sta diventando vecchia scuola.
Questo tutorial ti mostrerà come portare questo fantastico effetto sul mondo web con jQuery. Il codice utilizzato in questo tutorial è modificato in base all'approccio di John Resig.
Effetto Livesearch in Windows 7
Effetto Livesearch in OS X
Per iniziare, abbiamo bisogno di alcuni elementi html tra cui:
... e due librerie javascript:
Ultimo ma non meno importante, abbiamo bisogno di alcuni elementi da cui cercare. In questo tutorial, utilizziamo i nomi di molti framework Web come dati fittizi, OK? (Vedi l'elenco di questi quadri)
I dati di "ricerca-da" possono essere forniti in matrici, JSON o qualsiasi forma, purché possano essere inseriti in loop in javascript. Possono essere usati anche array multidimensionali. Ma per semplicità di dimostrazione e comprensione, i dati utilizzati in questo tutorial sono un semplice array unidimensionale chiamato "items".
E infine, ecco l'HTML. Fai attenzione a dove vengono incluse le due librerie JS. Nota: css non è la parte chiave di questo effetto, quindi non passeremo secondi sullo stile. Sono minimizzati. Spero che questo non ti infastidisca o ti distragga. Concentriamoci su HTML e JS.
Salva il seguente codice in un file html e iniziamo!
jQuery Livesearch Effect jQuery Livesearch Demo
Trova il tuo framework Web preferito
<-- Type in here and get search results LIVE!
Come un utente javascript, non puoi vivere senza Firebug oggi. È sicuramente un must per chiunque lavori con jQuery. Puoi completare questo tutorial senza firebug installato. Ma con firebug, siamo in grado di vedere un sacco di cose dietro le quinte, che è essenziale per capire la ricerca in questo effetto.
Ricorda gli articoli fittizi da cui cercare? Sì, i nomi delle strutture. Controlliamo se sono nel posto giusto con Firebug:
Dovresti vedere qualcosa mostrato nell'immagine qui sotto. Firebug stampa la variabile "items" che è una matrice. Sì, i nostri nomi delle strutture sono proprio lì sul posto. Andiamo avanti!
Ora parliamo della logica. Per ottenere questo effetto funzionante, è necessario che si verifichi una sequenza di cose:
Facile, hah? Tranne una cosa. Se cerco un quadro chiamato "torta", la logica di cui sopra funziona, un ciclo per lettera, 4 cicli in totale, giusto? Ma i primi 3 cicli sono completamente inutili, solo per ridurre le prestazioni in grande stile. Per mitigarlo, aspetteremo che l'utente interrompa la digitazione prima di attivare la nostra logica. E se un utente interrompe la digitazione per 0,2 secondi, supponiamo che finisca. A questo punto, la nostra logica è abbastanza delicata. È ora di sporcarsi le mani e iniziare a scrivere codice!
Nella vita reale, l'ascolto può essere estremamente importante. Questo è vero anche nel mondo di jQuery, dove tutto parte dall'ascolto di un evento.
Cerca "segnaposto" nel file HTML. Inserisci il seguente codice in quel luogo.
Il seguente codice ascolta l'evento keyup. Buttali tra ile