Html 使 div 元素获得焦点

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16261504/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 07:57:46  来源:igfitidea点击:

Make div element receive focus

javascripthtml

提问by Chito Adinugraha

How can I make an HTML <div>element receive focus, so elements will be put into focus when focus()is called on them?

如何使 HTML<div>元素获得焦点,以便在focus()调用元素时将其置于焦点?

回答by David says reinstate Monica

Set the tabindex="0"on the div, on the assumption that you want the divs to receive focus, rather than child elements.

设置tabindex="0"on div,假设您希望divs 获得焦点,而不是子元素。

Updated the answer to add a JS Fiddle demo, showing a JavaScript means of achieving this:

更新了答案以添加 JS Fiddle 演示,显示了实现此目的的 JavaScript 方法:

var divs = document.getElementsByTagName('div');
for (var i = 0, len = divs.length; i < len; i++){
    divs[i].setAttribute('tabindex', '0');
}

JS Fiddle demo.

JS小提琴演示

While composing the demo I found that tabindex="-1"allows the element to receive mouse-clicks to assign focus, but not keyboard events (through the tabbutton), however (and as implied in the comment, earlier, by Fabricio Matté, a tabindex="0"allows for both). So I've used that in the demo, and updated the original answer to reflect that change.

在编写演示时,我发现tabindex="-1"允许元素接收鼠标点击以分配焦点,但不允许接收键盘事件(通过tab按钮),但是(正如之前的Fabricio Matté在评论中暗示的那样,atabindex="0"允许两者)。所以我在演示中使用了它,并更新了原始答案以反映这种变化。

Behavior of tabindex="0"versus tabindex="-1"documented here: https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets#Using_tabindex

此处记录的tabindex="0"vs行为tabindex="-1"https: //developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets#Using_tabindex