×
Vytvárame riešenia

Spoznávame focusNode (Dojo)

Widgety z frameworku Dojo Toolkit v rámci svojej štruktúry pracujú s focusNode. Vďaka tomu je možné používať zápis widget.focus(). Focus sa používa pre rýchlu navigáciu po stránke a spolu s kombináciou ďalších zápisov je určený najmä pre nevidiacich alebo pre navigáciu bez myši, napríklad východiskové nastavenie sa do poľa formulára a následné rýchle prechádzanie polí bez potreby použitia myši prostredníctvom klávesy TAB.
Pri tvorbe vlastných widgetov je možné funkcionalitu focusu a metódu focus() vytvoriť tiež, vďaka čomu sa zabezpečí unifikované volanie pre všetky widgety. Ako prvé je potrebné v template definovať focusNode. To sa vykoná cez zápis data-dojo-attach-point="focusNode". Druhým veľmi dôležitým krokom je vykonať zápis atribútu tabindex. Bez zápisu atribútu tabindex nebude focus fungovať.
Príklad: Jednoduchý template s definovaním kontajnera, ktorý má mať focus.
1
2
3
4
5
6
7
8
<div>
<div tabindex="1" data-dojo-attach-point="focusNode">
container with focus
</div>
<div>
container without focus
</div>
</div>
Hodnotu atribútu tabindex je možno manažovať programaticky. Okrem zápisu v template je potrebné vykonať aj zápis vo widgete. Do widgetu teda pridáme metódu focus().
Príklad: Vytvorenie základnej metódy focus().
1
2
3
4
5
focus: function() {
if (this.focusNode && this.focusNode.focus) {
this.focusNode.focus();
}
}
Uvedený zápis najskôr skontroluje, či widget obsahuje focusNode a medódu focus(). Ak focusNode existuje a má aj metódu focus(), pokúsi sa uzlu priradiť focus.

Záver

Pri práci s focusom je vhodné správne definovať hodnoty atribútu tabindex, ktoré zabezpečia poradie, v akom bude focus prostredníctvom klávesnice elementom priradený. Metóda focus() slúži na prerušenie aktuálneho poradia a presunutie do inej časti stránky, kde opäť bude poradie závisieť na hodnotách atribútu tabindex.


Dojo,programovanie,focusNode,data-dojo-attach-point,tabindex,focus,HTML
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších