Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用特定div上的tab键_Javascript_Jquery_Html - Fatal编程技术网

Javascript 禁用特定div上的tab键

Javascript 禁用特定div上的tab键,javascript,jquery,html,Javascript,Jquery,Html,我的结构如下: <div id="wrapper"> <div id="div1">Some content</div> <div id="div2">Some content</div> </div> 一些内容 一些内容 我想“禁用”div2上的tab键,我的意思是当按下tab键时,div2的元素不会收到焦点 有没有简单的方法可以使用javascript/jquery创建这个tab键拦截器?有一个相当简单

我的结构如下:

<div id="wrapper">
   <div id="div1">Some content</div>
   <div id="div2">Some content</div>
</div>

一些内容
一些内容
我想“禁用”div2上的tab键,我的意思是当按下tab键时,div2的元素不会收到焦点


有没有简单的方法可以使用javascript/jquery创建这个tab键拦截器?

有一个相当简单的方法,使用jquery的
focus()
方法。给出以下简化的html:

<div id="first">
    <label for="first">Can tab to this input</label>
    <input type="text" id="first" />
</div>
<div id="second">
    <label for="second">Can't tab to this input</label>
    <input type="text" id="second" />
</div>
<div id="third">
    <label for="third">Can tab to this input</label>
    <input type="text" id="third" />
</div>

不过,这有点过于简化了。如果你公布你的确切价格,我们可能会提供一些更…定制

在上面的实现中,它还可以防止
输入通过click事件以及tab聚焦,我想这会降低有用性


编辑修改上述代码,区分焦点与鼠标单击和键盘选项卡:

$('#second input').bind('keyup mouseup',
                        function(e){
                            if (e.which == 9) {
                                // focus from tab
                                $('#third input:visible:first').focus();
                            }
                            else if (e.which == 1) {
                                // focus from click
                                return false;
                            }
                            else {
                                alert('God only knows, what buttons are you mashing..?');
                            }
                        });

约翰·斯特里克勒是对的。tab键的行为可以通过tabindex属性更改。这是元素具有焦点的顺序

对于
某些内容
,您应该避免将焦点放在您的div上


更多信息:

这只是我的最佳猜测,但输入字段有一个tabindex属性。我把它设为-1。看看会发生什么。不过这只适用于输入字段。谢谢John,它与div's、iframes(类似facebook)合作,…是的,应该可以。正是我来这里发布的内容。:)我…从没想过…=/+1为了保持简单…:)谢谢你的帮助,大卫。然而,我认为Jason的答案更简单:)当然是,因此我对他的答案+1=)
$('#second input').bind('keyup mouseup',
                        function(e){
                            if (e.which == 9) {
                                // focus from tab
                                $('#third input:visible:first').focus();
                            }
                            else if (e.which == 1) {
                                // focus from click
                                return false;
                            }
                            else {
                                alert('God only knows, what buttons are you mashing..?');
                            }
                        });