html 更改tab键焦点

来源:互联网 发布:现代家庭网络布线 编辑:程序博客网 时间:2024/05/22 14:15

1. 如何调整焦点到一个DIV上,How to focus to a DIV in Javascript?

Div元素不是Input,所以通常意义上focus()会失效。

document.getElementById('tries').focus();//doesn't work

但是我们会有这种需求,需要我们focus到某一个DIV上,并且handle一些键盘事件,比如我们使用DIV来模拟了一个动态的dialog,然后这个dialog上有一些键盘事件需要捕获和处理。

这个时候只需要给DIV元素Assign一个tabindex,就可以使得DIV能够被focus上

<div tabindex="0">Hello World</div>

我们还可以使得tabindex = -1, 这样使得该DIV只能通过脚本来focus。


2. html 更改tab键焦点次序

html中的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。

把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。 

这样,当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动。 如果有两个控件的tabIndex属性相同,则以控件在html代码中出现的顺序为准。 默认的tabIndex属性为 0 ,将排列在在所有指定tabIndex的控件之后。 而若把tabIndex属性设为一个负值(如tabIndex="-1"),那么这个链接将被排除在TAB键的序列之外。 如果最初选择了[Tab]键,带这个输入栏的网页会将光标移动到firstName栏。 在给tabIndex特性赋值时,要留意几个问题。下面是几个赋值规则: 带0值tabIndex的元素根据源代码(或默认页面行为)进行排序。 大于0的tabIndex值设定其tab顺序。所有带正tabIndex值的元素出现在所有带0 tabIndex值的元素之前。 如果你犯了一个错误,把同一个tabIndex赋予给多个元素,像其它元素一样,它们会以一个0值tabIndex进行处理。 将tabIndex赋值为-1,则在使用[Tab]键时,此元素被忽略。注意:如果使用-1值时,onfocus与onblur事件仍被启动。 tabIndex的值可为0至32767之间的任意数字


3. 指定元素间tab切换(js 实现)

<div class="s" tabindex="2" style="margin-left: 110px;" id="confirmbutton">确认</div><div class="s" tabindex="3" style="margin-left: 110px;" id="confirmcancel">取消</div>

$(document).off("keydown.s").on('keydown.s',function(event){    event = window.event||event;    if((event.keyCode||event.which)=='9'){        if($("#confirmcancel").is(":focus")){            $("#confirmbutton").focus();        }else{            $("#confirmcancel").focus();        }        return false;    }});

1 0
原创粉丝点击