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.
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.26.1.2014, Matej LednárKategória: DojoDojo,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.