Live søk effekten er ingen nyhet i desktop apps. I Mac OS X eller Windows Vista / 7 skriver du bare noen få bokstaver i en søkeboks, nesten umiddelbart får du søkeresultatet i fly. Å måtte trykke på send-knappen blir gammel skole.
Denne opplæringen vil vise deg hvordan du kan bringe denne kule effekten til webverdenen med jQuery. Koden som brukes i denne opplæringen, er endret basert på John Resigs tilnærming.
Livesearch Effect i Windows 7
Livesearch Effect i OS X
For å komme i gang trenger vi noen html-elementer, inkludert:
... og to javascriptbiblioteker:
Sist men ikke minst, vi trenger noen ting å søke fra. I denne opplæringen, la oss bruke navnene på mange webrammer som dummy data, OK? (Se listen over disse rammene)
"Søk-fra" -dataene kan gis i arrays, JSONs eller noen form, så lenge de kan sløyfes i javascript. Multidimensjonale arrayer kan også brukes. Men for enkel demonstrasjon og forståelse, er data som brukes i denne opplæringen en enkel en-dimensjonal gruppe kalt "elementer".
Og til slutt, her er HTML. Vær oppmerksom på hvor de to JS-bibliotekene kommer med. Merk: css er ikke nøkkelen til denne effekten, så vi vil ikke bruke noen andre på styling. De er minifisert. Håper dette ikke vil forstyrre eller distrahere deg. La oss fokusere på HTML og JS.
Lagre følgende kode i en html-fil, og la oss starte!
jQuery Livesearch Effect jQuery Livesearch Demo
Finn ditt favoritt webramme
<-- Type in here and get search results LIVE!
Som javascript-fyr, kan du ikke leve uten Firebug i dag. Det er definitivt et must for alle som jobber med jQuery. Du kan fullføre denne opplæringen uten å installere firebug. Men med firebug kan vi se mange ting bakom scenen, noe som er viktig for å forstå søket i denne effekten.
Husk dummy-elementene for å søke fra? Ja, rammenavnene. La oss sjekke om de er på riktig sted med Firebug:
Du bør se noe som vises i bildet nedenfor. Firebug skriver ut variabelen "elementer" som er en matrise. Ja, våre rammenavn er akkurat der på plass. La oss gå videre!
La oss nå snakke om logikken. For å få denne effekten til å virke, må en rekke ting oppstå:
Lett, hah? Bortsett fra en ting. Hvis jeg søker etter et rammeverk kalt "kake", kjører logikken ovenfor, en syklus per brev, totalt 4 sykluser, ikke sant? Men de første 3 syklusene er helt unødvendige, bare for å redusere ytelsen på en stor måte. For å redusere dette, vil vi vente til brukeren slutter å taste inn før logikken slås av. Og hvis en bruker slutter å taste inn i 0,2 sekunder, antar vi at han er ferdig. Til dette punktet er vår logikk delikat nok. Det er på tide å få hendene skitne og starte kodingen!
I virkeligheten kan lytting være ekstremt viktig. Dette gjelder også i jQuery's verden, hvor alt starter fra å lytte til en hendelse.
Søk etter "plassholder" i HTML-filen. Sett følgende kode inn på det stedet.
Følgende kode lytter til nøkkelfunksjonen. Kast dem i mellome