Vad ändras i jQuery UI 1.8 - Plus Free Books!

jQuery UI 1.8 är för närvarande på frisläppande kandidatstadiet och, förutom att upptäcka en större bugg eller fel, kommer snart att bli den nuvarande stabila versionen av jQuerys officiella UI-bibliotek. Så vad har förändrats sedan den senaste nuvarande stabila versionen av 1.7.2? En av de stora skillnaderna är givetvis att biblioteket nu körs på den senaste versionen av jQuery själv - version 1.4.1, men det har varit många andra förändringar, inklusive tillägg av några bra nya komponenter, som vi ser över förloppet av denna artikel.


Gratis kopior av jQuery UI 1.7

Författaren till den här artikeln, Dan Wellman, släppte nyligen jQuery UI 1.7, från Packt Publishing. Det är en fantastisk läsning, och jag är glad att kunna meddela att vi har en handfull kopior för att slumpmässigt ge ut. Lämna bara en kommentar om artikeln, så kommer du automatiskt in på ritningen. Kolla tillbaka på måndag för att ta reda på om du är en vinnare!


1. Bug Zapping

Den här utgåvan av biblioteket ger flera buggfixar för vissa nyckelkomponenter, inklusive Datepicker och Dialog widgets och Droppable, Resizable och Selectable interaction helpers. Ingen av buggarna var show-stoppare, men ändå rensa bort buggarna är en kritisk del av bibliotekets pågående utveckling. En viktig punkt att notera är att beforeclose händelsen i dialogrutan har avlägsnats och ersatts med beforeClose så att det följer samma namnkonvention som händelserna för andra komponenter.

Förutom buggar i koden har även flera styling- och tillgänglighetsfrågor tagits upp. i synnerhet kan titeltexten för dialog widgets inte längre försvinna bakom den stängda ikonen och tangentbordets navigationsbarhet för den nya knappen widget har förbättrats. För en komplett lista över alla buggfixar som ingår i version 1.8, se changelog på http://jqueryui.com/docs/Changelog/1.8rc1


2.Positioning

jQuery UI har nu ett unikt positionssystem som det kan användas när en widget behöver placeras i förhållande till ett annat element, till exempel med en rullgardinsmeny eller ett flytande verktygstips. Position-verktyget gör att vi enkelt kan specificera, med hjälp av en serie enkla strängar, vilken del av det placerade elementet ska sättas till vilken del av det angivna målelementet. Så till exempel, "övre vänstra" punkt på ett element kan sättas till "nere till höger" av ett annat specificerat element.

Verktyget har också ett robust kollisionsdetekteringssystem som förhindrar att tittarna på sidan exponeras för fula verktygsfält om elementet som är placerat blir för nära kanten på visningsporten eller inte annars kan uppta sin position.

API för det här verktyget är kompakt, med bara 7 konfigurerbara alternativ för tillfället. Detta ger oss all kontroll vi behöver dock och tillåter oss att specificera upp till 81 möjliga kombinationer av positionering; alternativ som vi kan konfigurera inkluderar följande:

:
Avser positionen på målelementet som elementet placeras kommer att vara fixerat till; Metoden accepterar en enda sträng som utgörs av värdet för den horisontella axeln (antingen höger, Centrum, eller vänster) följt av värdet för den vertikala axeln (antingen topp, Centrum, eller botten). Det finns ingen skillnad mellan de två värdena.
bgiframe:
Om bgiframe-pluginet är tillgängligt på sidan kommer det här alternativet att tillämpa en iframe shim till det placerade elementet, vilket kan bidra till att förhindra att valda element visas över det placerade innehållet i IE6.
kollision:
Det här alternativet avgör hur kollisioner hanteras. det accepterar en av följande strängar: flip, passa eller ingen. Standard är flip, vilket medför att elementet placeras för att invertera läget i förhållande till målelementet, t.ex.. "rätt centrum" kommer att bli "vänster centrum".
min:
Avser att elementet är placerat; accepterar samma värden som .
av:
Accepterar en jQuery-väljare som specificerar målelementet.
offset:
Ange ett antal pixlar för att kompensera elementet som är placerat på målelementet.
använder sig av:
En återuppringningsfunktion kan användas med det här alternativet så att du kan animera placeringen av elementet.

3. Autofullständig

En av mina favorit widgets har återvänt som en officiell användargränssnittskomponent! Autocomplete var en beta-widget i en tidig 1,6-version av biblioteket och är nu tillbaka efter en komplett refactor. Den är kopplad till textinmatningar på sidan och ger en lista över möjliga val när en besökare börjar skriva i textfältet.

Widgeten kan ta sin data (matchande objekt i förslaget menyn) från en mängd olika källor, inklusive en standard JavaScript-grupp, JSON via en AJAX-förfrågan eller en flexibel återuppringningsfunktion som kan implementera en datakälla och returnera ett anpassat svar för visning i förslag menyn.

Autocomplete är en mycket konfigurerbar widget och har ett fullständigt API med alternativ, metoder och händelser som kan utnyttjas. Det är helt temaboende via SteamRoller och helt navigationsbart tangentbord. Sammantaget ger denna komponent mycket funktionalitet till dina sidor. Vid en viss framtid kan punktcaching också vara ett konfigurerbart beteende.

Låt oss ta en titt på dess API; den innehåller följande tre konfigurationsalternativ:

fördröjning:
Vi kan ange hur många millisekunder widgeten ska vänta innan visning menyn visas när besökaren börjar skriva in inmatningen.
MINLENGTH:
Det här alternativet tar ett heltal som refererar till hur många tecken som ska skrivas in i inmatningen innan förslagsmenyn visas.
källa:
Vi konfigurerar datakällan med det här alternativet. möjliga värden inkluderar en rad strängar som representerar de objekt som ska visas i förslag menyn eller en rad objekt där varje objekt innehåller två egenskaper - den första är etiketten som visas i förslag menyn, den andra är det värde som läggs till Inmatningen om ett objekt i förslag menyn är valt. Vi kan också leverera en enda sträng som representerar en fjärrresurs som kan returnera data asynkront eller en återuppringningsfunktion som kan begära data och returnera den till widgeten i det önskade formatet.

Följande två metoder exponeras av Autofullständig:

stänga:
Används för att stänga förslagsmenyn.
Sök:
Gör en sökning av tillgängliga data och visa förslag om termen matchas. Kan ta ett fördefinierat värde som termen som överförs till metoden som ett argument, eller värdet av ingångsfältet som det är associerat med.

Vi kan även koppla återuppringningsfunktioner till följande anpassade händelser:

Byta:
Avstängd efter ett föremål i förslaget menyn är valt och menyn är stängd.
stänga:
Avfyrade när förslagsmenyn är stängd, oavsett om ett objekt valdes eller inte. Föregår Byta händelse.
fokus:
Avfyrade direkt innan fokus ges på ett objekt i förslaget menyn.
öppna:
Avfyrade när data har returnerats, direkt innan förslagsmenyn visas.
Sök:
Avfyrade direkt innan datakällan söktes. Sökningen kan avbrytas genom att återvända falsk från en återuppringningsfunktion bunden till denna händelse.
Välj:
Denna händelse utlöses när ett objekt från menyn före menyn stängs.

Som en speciell bonus innehåller källfilen för Autocomplete-widgeten även beta-meny-widgeten, som fortfarande är under utveckling och beräknas släppas i en senare version av biblioteket. Hittills ser det ut som ett robust och attraktivt tillägg till biblioteket, och låter oss omforma en oorderad lista till en attraktiv rullgardinsmeny. Många funktioner stöds, inklusive undermenyer, ikoner, delare och till och med en nedrullningsmeny med breadcrumb.


4. Knapp

Med knappen Widget kan vi implementera attraktiva och funktionella knappar som kan konfigureras för att fungera som en viss typ av knapp. till exempel kan vi kasta standardknapparna, knappar i radstil där endast en enda knapp i en uppsättning kan väljas, eller knapparna i kontrollpanel där valfritt nummer i en viss uppsättning kan väljas. Flera typer av knappar som innehåller en enkel rullgardinsmeny kan också skapas.

Det är en mycket flexibel widget och kan byggas med en mängd olika underliggande element, inklusive