Hogyan készítsünk jobb UX-et HTML5 Data- * attribútumokkal
Voltál már valaha is hozzáadni egyéni adatokat egy adott HTML elemhez, hogy később hozzáférhessen a JavaScript-hez? Mielőtt a HTML5 megjelent volna a piacon, a DOM-hoz kapcsolódó egyéni adatok tárolása valódi felhajtás volt, és a fejlesztőknek mindenféle csúnya hacket kellett használniuk, mint például a nem szabványos attribútumok bevezetése vagy az elavult setUserData () módszer használata a probléma megoldásához.
Szerencsére ezt már nem kell tennie, mivel a HTML5 új globális bevezetést vezetett be adat-*
olyan attribútumok, amelyek lehetővé teszik a további információk beágyazását bármely HTML elemre. Az új adat-*
attribútumok a HTML bővíthetősége, ebből adódóan lehetővé teszi, hogy összetettebb alkalmazásokat építsenek, és hozzon létre egy kifinomultabb felhasználói élményt anélkül, hogy erőforrás-igényes technikákat, például az Ajax-hívásokat vagy a kiszolgálóoldali adatbázis-lekérdezéseket kellene használnia.
Az új globális attribútumok böngésző támogatása viszonylag jó, mivel az összes modern böngésző támogatja őket (az IE8-10 részben támogatja őket).
A adat-*
attribútumok
Az új szintaxisa adat-*
Az attribútumok hasonlóak az aria-előtaggal rendelkező attribútumokéhoz. Bármely kisbetűs karakterláncot behelyezhet a helyére *
jel. Egy attribútum értékét is meg kell adnia egy karakterlánc formájában.
Tegyük fel, hogy szeretnénk létrehozni egy Rólunk oldalt, és tárolja az egyes alkalmazottak nevét. Nem kell mást tennie, kivéve a data-osztály
egyéni attribútum a megfelelő HTML elemhez a következő módon:
- gipsz Jakab
- Jane Doe
Szokás adat-*
Az attribútumok globálisak, mint a osztály
és id
attribútumokat, így minden HTML elemen használhatja őket. Ön is adhat annyi adat-*
attribútumok egy HTML-címkéhez, amennyit csak akar. A fenti példában például új egyéni attribútumot adhat meg, amelyet hívnak adat-felhasználó
a felhasználónevek tárolására.
- gipsz Jakab
- Jane Doe
Általános szabályként, ha saját egyéni attribútumot szeretne hozzáadni egy HTML elemhez, akkor mindig meg kell adnia azt a adat-
húr. Hasonlóképpen, ha egy adat-előtag attribútumot lát valaki más kódjában, biztosan tudja, hogy ez a szerző által létrehozott egyéni attribútum.
Mikor kell használni és mikor ne használja az egyéni attribútumokat
A W3C az egyéni beállítást határozza meg adat-*
attribútumok, mint így:
“Az egyéni adat attribútumok arra szolgálnak, hogy az egyéni adatokat tárolják az oldalhoz vagy alkalmazáshoz, amelyekhez nincsenek megfelelő attribútumok vagy elemek.”
Érdemes fontolóra venni adat-*
attribútumok ha nem talál más szemantikai attribútumot az adatokhoz, amelyeket tárolni szeretne.
Nem a legjobb ötlet, hogy kizárólag stílusos célokra használjuk őket, mint amilyeneket a osztály
és a stílus
attribútumok. Ha olyan adattípust szeretne tárolni, amelyre a HTML5-nek van egy szemantikai attribútuma, például a dátum idő
attribútum a elemet használjuk, az adatkonfigurált attribútum helyett.
Fontos megjegyezni, hogy adat-*
attribútumok tartják az adatokat magán az oldalra vagy az alkalmazásra, ez azt jelenti, hogy a felhasználói ügynökök, mint például a keresőrobotok és a külső alkalmazások figyelmen kívül hagyják őket. Az adat-előtaggal rendelkező attribútumok csak a HTML-kódot tartalmazó webhelyen futó kódhoz férhetnek hozzá.
Szokás adat-*
az attribútumokat széles körben használják a frontend keretek, mint például a Bootstrap és a Zurb Foundation. A jó hír az, hogy nem feltétlenül kell tudnod, hogyan kell JavaScript-t írni, ha adatkonfigurált attribútumokat szeretne használni egy keretrendszer részeként, mivel csak akkor kell hozzáadni őket a HTML-kódhoz, hogy aktiválhasson egy funkciót. előre írt JavaScript plugin.
Az alábbi kódrészlet egy eszköztippet ad a bal oldali gombbal a Bootstrap gombjához, a data-kapcsoló
és a data-elhelyezés
egyéni attribútumok, és megfelelő értékek hozzárendelése hozzájuk.
Cél adat-*
Attribútumok a CSS-szel
Bár nem ajánlott használni adat-*
attribútumok csak stílusos célokra használhatók, kiválaszthatja azokat a HTML elemeket, amelyekhez általános attribútum-választók segítségével tartoznak. Ha meg szeretné választani minden egyes elemet, amely bizonyos adatkódú attribútummal rendelkezik, használja ezt a szintaxist a CSS-ben:
li [adat-felhasználó] szín: kék;
Ne feledje, hogy a fenti felhasználó kódjai nem jelennek meg kékben a kódrészletben - miután az összes egyedi attribútumban tárolt adat nem látható - hanem az alkalmazottak nevét a elemeket (a példában “gipsz Jakab” és “Jane Doe”).
Ha csak olyan elemeket szeretne kiválasztani, amelyekben az adat-előtaggal rendelkező attribútum bizonyos értéket vesz igénybe, akkor ezt a szintaxist kell használni:
li [data-Department = "IT"] border: szilárd kék 1px;
Használhatja az összes bonyolultabb CSS attribútum-szelektorot, például az általános testvér-kombinátor választót ([Data-érték ~ = "foo"]
) vagy a helyettesítő választó ([Data-érték * = "foo"]
), adat-előtaggal rendelkező attribútumokkal is.
Hozzáférés adat-*
Jellemzők a JavaScript használatával
Az egyéni tárolt adatokhoz hozzáférhet adat-*
a JavaScripttel rendelkező attribútumokat az adatkészlet vagy a jQuery's használatával adat()
eljárás.
Vanília JavaScript
A adatbázisba
az ingatlan a HTML-elem
Ez azt jelenti, hogy bármilyen HTML-címkén használhatja. A adatbázisba
A tulajdonjog minden szokáshoz hozzáfér adat-*
az adott HTML elem attribútumai. Az attribútumok a következőképpen kerülnek visszaadásra: DOMStringMap
objektum, amely mindegyikhez egy bejegyzést tartalmaz adat-*
tulajdonság.
Miénkben Rólunk Az oldal példája könnyen ellenőrizheti az egyéni attribútumokat “Jane Doe” a adatbázisba
a következő módon:
var jane = document.getElementById ("jane"); console.log (jane.dataset); // DOMStringMap felhasználó: "janedoe", osztály: "IT"
Láthatjuk, hogy a vissza DOMStringMap
objektum a adat-
az előtagok eltávolításra kerülnek az attribútumok nevéből (használó
ahelyett adat-felhasználó
, és osztály
ahelyett data-osztály
). Az attribútumokat ugyanabban a formátumban kell használnia, ha csak egy bizonyos adat-előtag attribútum értékét szeretné elérni (az összes egyéni attribútum listája helyett, mint a fenti kódrészletben).
Egy adott érték értékét lekérheti adat-*
attribútum a adatbázisba
ingatlan. Ahogy korábban említettem, ki kell hagynod adat-
előtagot a tulajdonság nevéből, így ha Jane értékét szeretné elérni adat-felhasználó
attribútum, így teheti meg:
var jane = document.getElementById ("jane"); console.log (jane.dataset.user) // janedoe
jQuery adat()
eljárás
A adat()
A jQuery módszer lehetővé teszi az adat-előtag attribútum értékének megszerzését. Itt is ki kell hagynia a adat-
az attribútum nevéből az előtagot, hogy megfelelően hozzáférjen. Példánkban figyelmeztető üzenetet jeleníthet meg az osztály nevével, ahol “Jane” a következő kóddal működik:
$ ("# jane") hover (funkció () var department = $ ("# jane"). adat ("osztály"); figyelmeztetés (osztály););
A adat()
A módszert óvatosan kell használni, mivel ez nemcsak az adatkonfigurált attribútum értékének megszerzésére szolgál, hanem a DOM elemhez az alábbi módon is csatolja az adatokat:
var town = $ ("# jane"). adatok ("város", "New York");
A jQuery-hez csatolt extra adatok adat()
a módszer nyilvánvalóan nem jelenik meg a HTML-kódban újként adat-*
attribútum, így ha mindkét technikát egyidejűleg használják, akkor az adott HTML elem két adatsorot tárol, egyet HTML-t és egy másik jQuery-t..
Példánkban “Jane” új egyéni adatokat kapott"város"
) a jQuery-vel, de ez az új kulcsértékpár nem jelenik meg új HTML-ben data-város
tulajdonság. Az adatok kétféle módon történő tárolása nem a legjobb gyakorlat a legkevésbé csak egyszer használjon a két módszer közül egyet.
Hozzáférhetőség és adat-*
attribútumok
Mint a szokásos adatok adat-*
Az attribútumok magánjellegűek, előfordulhat, hogy a segítő technológiák nem férhetnek hozzá. Ha meg szeretné tartani a tartalmát a fogyatékkal élő felhasználók számára, nem ajánlott olyan tartalmat tárolni, amely így fontos lehet a felhasználók számára.