, hvordan anvendes jquery ui autocomplete dims,,,,, andel,,,,,,,, 31,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, i denne forelæsning, vi ser på en af jquery - 1,8 s nyeste komponenter - autocomplete widget.- gennemførelse af tekst områder kan være et populært valg med besøgende på din hjemmeside, fordi de i oplysninger meget lettere.de kan anvendes på områder, som for eksempel efter produkt, eller når en gæst rejser ind i et land eller en by, eller noget andet, som kan være et valg fra et fælles datasæt.såvel som at være populær med besøgende, jquery ui autocomplete er populære hos udviklere, fordi det er let at anvende, stærkt og fleksibelt.,,, jeg er ikke en stor fan af facebook, jeg foretrækker twitter (@ danwellman btw), men en facebook - element, jeg kan lide, er det element, der lader dig sende beskeder en besked til en ven eller venner.jeg kan lide, hvordan autocomplete anvendes til at foretage udvælgelsen af din vens navn lettere, og hvordan de navne er formateret, når de er blevet valgt, og lægges til de "til" område, f.eks. de har hver en tæt forbindelse til dem, der gør det muligt for den at være let at fjerne navn uden at skulle vælge en tekst i denne lektion. vi skal bruge jquery ui autocomplete dims til at gentage dette aspekt af facebook er messaging system.vi leder ikke til at sende beskeder, men.det er, hvad vi skal skabe:,, trin 1 begyndt, bliver vi nødt til at bygge en skik download af jquery ui, der kun indeholder komponenter, vi har brug for, og tage over til download bygger på http://jqueryui.com/download.vi bliver nødt til at anvende følgende centrale elementer:,, kerne, dims, position, får vi også brug for de autocomplete widget sig så sikre, at kun de ovennævnte poster samt autocomplete, kontrolleres som komponenter i venstre side.brug standard tema (eu - erhvervsgrenen lethed) og sikre, at version 1.8 udvælges på ret. når downloadede, skabe en ny mappe på din computer, og kalder det, autocomplete,.så åbner arkivet og kopiere, css og js, mapper i den nye mappe, du har skabt.This will give you all of the library files required for this example including jQuery itself, so this doesn't need to be downloaded separately., , Step 2 The Underlying HTML,Let's look at the HTML for the ,<form>, first of all:,<div id="formWrap"> \t<form id="messageForm" action="#"> \t\t<fieldset> \t\t\t<legend>New message form</legend> \t\t\t<span>New Message</span> \t\t\t<label id="toLabel">To:</label> \t\t\t<div id="friends" class="ui-helper-clearfix"> \t\t\t\t<input id="to" type="text"> \t\t\t</div> \t\t\t<label>Subject:</label> \t\t\t<input id="subject" name="subject" type="text"> \t\t\t<label>Message:</label> \t\t\t<textarea id="message" name="message" rows="5" cols="50"></textarea> \t\t\t<button type="button" id="cancel">Cancel</button> \t\t\t<button type="submit" id="send">Send</button> \t\t</fieldset> \t</form> </div>,It's a pretty standard form; there's an outer container ,<div>, we can use for styling and the ,<input>, that the Autocomplete will be attached to is also within a ,<div>, element; we'll style the ,<input>, so that it's slightly hidden, and we'll style the ,<div>, so that it looks like the other fields in the form. We give the container for the ,<input>, the ,ui-helper-clearfix, class name to make use of this utility class from jQuery UI's CSS framework.,We'll also need to link to the files we unpacked from the jQuery UI archive, as well as a custom stylesheet; the following files should go into the ,<head>, of the page:,<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.custom.css"> <link rel="stylesheet" type="text/css" href="css/autocomplete.css">,The following files should go at the end of the ,<body>,:,<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script>, , Step 3 Styling den form, vi bruger en meget enkel, neutral tema i dette eksempel, hvoraf de fleste er udelukkende som et eksempel.meget få af de stilarter er nødvendige, og de kan ændres, hvis det er nødvendigt.følgende css anvendes i, autocomplete.css, stil status (alle de jquery - - er i den, jquery-ui-1.8.custom.css, stil plader):,formwrap (polstring: 10px. position: absolut; flyde: venstre; baggrund farve: baggrund: rgba (0,0,0,. 5); - moz grænse radius: 10px; - webkit grænse radius: 10px; grænseoverskridende radius: 10px;}messageform (bredde: 326px; grænse: 1px fastʚ baggrund farve:eee)messageform fieldset (polstring: 0; margen: 0; position: relativ; grænse: ingen; baggrund farve:eee}messageform legende {synlighed: skjult, højde: 0}messageform levetid (display: blok; bredde: 326px; polstring: 10px 0; margen: 0 0 20px; tekst led: 20px; baggrund farve:bbb; grænseoverskridende nederst: 1px fastō og skrifttype: 18px georgia, Serif; color:#fff; } #friends { \twidth:274px; padding:3px 3px 0; margin:0 auto; \tborder:1px solid #aaa; background-color:#fff; cursor:text; } #messageForm #to { \twidth:30px; margin:0 0 2px 0; padding:0 0 3px; \tposition:relative; top:0; float:left; border:none; } #messageForm input, #messageForm textarea { \tdisplay:block; width:274px; padding:3px; margin:0 auto 20px; \tborder:1px solid #aaa; } #messageForm label { \tdisplay:block; margin:20px 0 3px; text-indent:22px; \tfont:bold 11px Verdana, Sans-serif;\tcolor:#666; } #messageForm #toLabel { margin-top:0; } #messageForm button { float:right; margin:0 0 20px 0; } #messageForm #cancel { margin-right:20px; } #friends span { \tdisplay:block; margin:0 3px 3px 0; padding:3px 20px 4px 8px. position: relativ; flyde: venstre; baggrund farve:eee grænse: 1px fastō, - - grænse radius: 7px; - webkit grænse radius: 7px; grænseoverskridende radius: 7px; farve:ō og skrifttype: normal 11px verdana, uden serif;}venner dækker en {holdning: absolutte og ret: 8px; top: 2px; farve:ʚ og skrifttype: dristige 12px verdana, uden serif; tekst): ingen;}venner dækker en: svævning (farve:ff0000;}. eu - erhvervsgrenen menu. eu - erhvervsgrenen menupunkt (hvide rum: nowrap; polstring: 0 10px 0 0}, til at give den form, en god gennemsigtig grænse med afrundede hjørner, vi skal bruge css3, rgba, styre og, - - grænse radius, - webkit grænse radius, og grænse radius, regler og mest populære browsere nu støtte disse regler, herunder firefox, safari, krom og opera.dvs. ikke støtte nogen af dem, og selv om det kan bruge et filter til at gennemføre grundlæggende uklarhed, afrundede hjørner skal støttes gennem anvendelse af billeder.effektiviteten af, rgba, gennemsigtighed er ikke vist fuldt ud i dette eksempel; men denne formular, sandsynligvis ville blive anvendt som flydende modal - overlay - i en fuldstændig gennemførelse, hvilket ville sidde over faktiske indhold på side. beholderen < div >, omkring, < input >, område, at autocomplete tekst område vil blive knyttet til gives samme placering og - som, < input >, elementer, men, < input > i denne container har sine grænser fjernes, så det er skjult.vi er også med til at reducere dens bredde flyde til venstre.det er så, at når vi tilføje formaterede modtagere til, < div >,, < input >, ikke overdrives og øge højden af, < div >, unødigt. har vi også stil modtagere, som skal lægges til, < div > som, < span >, elementer, der indeholder en forbindelse.de fleste af disse er såkaldte svarer til den grundlæggende tema, og kan også med afrundede hjørner.det er vigtigt, at disse elementer er blok og flyde, så de stak korrekt.vi har også brug for at omgå nogle af de automcomplete design, der er fastsat i jquery - tema, vi bruger, og den sidste vælgeren blot forhindrer de enkelte forslag i menuen brud mellem ord, der sker, fordi vi har gjort det, < input > det er forbundet med så små. i denne fase, form, skal anføres som denne:,, løntrin 4 påsætning af autocomplete, nu skal vi lægge autocomplete dims til, < input > inden for, < div >,; for at gøre det, vi kan anvende følgende manuskript:, < manuskript type = "tekst /javascript" > $(function() (//lægger autocomplete $("#"). autocomplete ((//definere callback til format resultater kilde: funktion (req, tilføje) (//over anmodning til server $.getjson ("friends.php?callback =? ", req, funktion (data) (//skabe system for respons genstande var forslag = []; //proces på $. hver (data, funktion (jeg, val) (forslag. tryk (val.name)}); //over antennegruppe til callback tilføje (forslag);})} //definere udvælge kontaktperson vælge: funktion (e -) (//skabe formaterede ven var ven = ui.item.value, kalibrering = $(< span > "). tekst (ven) a = $(< en >"). addclass ("fjerne"). attr ({href: "javascript:", afsnit: "fjerne" + ven}). tekst ("x"). appendto (levetid); //add ven til ven div span. insertbefore ("#");}, //definere udvælge kontaktperson ændring: sjovtction() (//forhindre "til" område opdateres og korrekte position $("#"). val (""). css ("top", 2))))); < /manuskript > den dims er knyttet til den, < input > ved, autocomplete() metode.vi leverer et objekt bogstaveligt som argument for den metode, som konfigurerer, kilde, valg og vælge, og ændre begivenhed callbacks.,, kilde, kan bruges til at fortælle den dims, hvor få forslag til autocomplete menu fra.vi bruger en funktion som værdien af denne mulighed, som accepterer to argumenter: det første er udtrykket indgået, < input >,, den anden er en callback - funktion, som anvendes til at vedtage forslagene tilbage til widget. inden for denne funktion, vi bruger jquery er, getjson(), metode at give ordet til en server-side php fil.folkesundhedsprogrammet fil vil bruge udtrykket at udvinde matchende navne på kontaktpersoner fra en mysql database.vi bruger en jsonp callback til at forarbejde de returnerede data fra serveren; denne funktion, som er vedtaget som det andet argument om, at kilden mulighed forventer at modtage de oplysninger i et system, så vi skaber et tomt system, og så bruge jquery er, each(), metode til at behandle hvert enkelt punkt i json system returneres af den - server.vi iterate over hvert enkelt punkt i dette system, og tilføje de enkelte forslag til vores nye system.når vores nye system bygger vi overgiver den til den callback funktion for den dims til fremvisning i menuen. vi så fastlægge en kontaktperson for autocomplete er sædvane, udvælge, begivenhed; denne funktion vil blive gennemført af den dims, hver gang et forslag er udvalgt fra autocomplete menu.denne funktion er automatisk vedtaget to argumenter - tilfælde genstand og en eu - erhvervsgrenen, genstand, der indeholder forslag, som blev udvalgt.vi bruger denne funktion til format modtagers navn og tilføje det til, < div >,.vi vil blot skabe en < span > element til at holde teksten og et anker element, der kan anvendes til at fjerne modtageren.når de selv har skabt, vi bare modtager sådanne direkte før camoufleret, < input >,. endelig tilføjer vi en kontaktperson for, ændre begivenhed; denne funktion vil være gældende, når værdien af det, < input >,, at autocomplete er forbundet med ændringer.vi bruger det til at fjerne værdien fra, < input >, fordi vi allerede har tilføjet de formaterede version til vores (< div >,.det er lidt højt oppe karat, når en formaterede kontakt navn er blevet føjet til, < div >, så vi også bruge dette tilfælde fører til at korrigere dette. det er alt, vi har brug for for denne gennemførelse, men der er stadig et par supplerende funktioner, er vi nødt til at tilføje, at rydde lidt op.After the ,autocomplete(), method add the following code:,//add click handler to friends div $("#friends").click(function(){ \t\t\t\t\t \t//focus 'to' field \t$("#to").focus(); }); \t\t\t\t //add live handler for clicks on remove links $(".remove", document.getElementById("friends")).live("click", function(){ \t\t\t\t \t//remove current friend \t$(this).parent().remove(); \t\t\t\t\t \t//correct 'to' field position \tif($("#friends span").length === 0) { \t\t$("#to").css("top", 0); \t}\t\t\t\t });,The ,<input>, that our Autocomplete is attached to is partially hidden and its container ,<div>, is styled so that it appears like the other fields on the form; to complete the deception, we add a click handler to the container ,<div>, so thatklik overalt inden for den fokuserer den faktiske, < input >,.visuelt og funktionelt nu, < div >, skal kunne skelnes fra en almindelig område. vi har også brug for klare klik på anker, der tilsættes hver formaterede modtager vi bruger jquery er, live(), metode, fordi disse elementer kan eller ikke kan findes på side på et givet tidspunkt og det er nemmere end bindende passeren, funktion, hver gang vi skaber en af disse ankre.når en af disse ankre er slået alt vi gør, er at sejle op til moderselskabet for anker, der blev slået og derefter fjerne det fra den side.kan du huske, da vi rettede den holdning af karat tidligere i manuskriptet?vi har bare brug for at kontrollere, om alle støttemodtagerne er blevet fjernet, og hvis det tager sin holdning til dens misligholdelse.,, løntrin 5 tillægskode og ressourcer, jeg brugte en mysql database med en oversigt over hvert af de modtagende navne, og følgende php fil at acceptere de data, der er fremsendt af det, getjson(), metode og træk matcher modtagere fra databasen:, <?php //forbindelse oplysninger $vært = "localhost" $bruger = "rod" $kodeord = "your_mysql_password_here" $database = "test" $param = $_get ["udtrykket"]; //få forbindelse $server = mysql_connect ($vært, $bruger $password); $forbindelse = mysql_select_db ($database, $server); //forespørgsel databasen $forespørgsel = mysql_query ("vælg * fra venner, hvor navn regexp. $param"); //bygge vifte af resultater ($x = 0, $numrows = mysql_num_rows ($spørgsmål); $x < $numrows. $x + +) ($ro = mysql_fetch_assoc ($spørgsmål); $venner [$x] = system ("navn" = > $række ["navn"]);} //echo json side $svar = $_get ["callback"]. "(".json_encode ($venner). "); echo $svar; mysql_close ($server)?> for at styre kan downloades, f.eks. filer, du får brug for en udvikling, web - server med folkesundhedsprogrammet installeret og konfigureret samt mysql og passende database og tabel.når der er et brev skrevet i "til" område, dette brev er gået til serveren, og som anvendes til at trække sig ud af hver navn begynder med det brev, som var skrevet.den tilsvarende navne er så gået tilbage til side som json og udviste i forslaget menu:,, det pædagogiske viste, hvordan at kopiere facebook budskab at sende form, især den måde, venner er tilføjet til messaging form som modtagere ved hjælp af en autocomplete, og hvordan de ven navne er formateret, når de er blevet tilføjet så de kan let fjernes.vores eksempel form faktisk ikke gøre noget, men hvad vi skulle gøre rent faktisk at sende form ville være at vedtage indholdet i form at et server-side fil for at sende med ajax, som nemt kunne blive fanget i tilfælde af sende knap forelægger, der anvendes i den form, de modtagere skal have en slags betydning til back - end - system, selvfølgelig, og vil sandsynligvis blive kortlagt til e - mail - adresse i databasen.vi er nødt til at hente tekstmæssigt indhold af hver af de, < span >, elementer, inden vi går tilbage til serveren, selv om det ville være temmelig triviel sag. den jquery ui autocomplete widget gør det nemt at forbinde alle datasource og indeholder en rig suite af tilfælde står, at vi kan levere. funktioner, for at reagere på tekst trådte i den tilhørende område eller et forslag, der er udvalgt fra menuen.den dims fremlægges ved hjælp af jquery - erhvervsgrenens omfattende css ramme og let kan ændres, så den passer til dine eksisterende anlæg tema.alt i alt, det er en fremragende dims, der er let at anvende, og som giver gode funktion.
hvordan anvendes jquery ui autocomplete dims
Next Page:20 nyttige jquery metoder, du skal bruge