Javascript 有没有办法禁用对div及其子节点的关注?
假设我们有一个DOM:Javascript 有没有办法禁用对div及其子节点的关注?,javascript,html,css,Javascript,Html,Css,假设我们有一个DOM: ... <div> // child nodes </div> <div id="needsToNotBeFocusable"> // child nodes </div> ... 。。。 //子节点 //子节点 ... 有没有办法使及其子节点不可聚焦 在每个子节点上设置tabindex=“-1”将破坏现有的tabindex。首先,在“按tab键不聚焦”和“从不聚焦(通过编程、单击或按tab)”之间存在区别。
...
<div>
// child nodes
</div>
<div id="needsToNotBeFocusable">
// child nodes
</div>
...
。。。
//子节点
//子节点
...
有没有办法使
及其子节点不可聚焦
在每个子节点上设置
tabindex=“-1”
将破坏现有的tabindex。首先,在“按tab键不聚焦”和“从不聚焦(通过编程、单击或按tab)”之间存在区别。前者是通过设置tabindex=“-1”
属性实现的,后者是通过添加disabled
属性实现的
input{display:block}
残疾人士:
表1:
您可能希望使用数据属性来保存选项卡索引,并在启用时进行设置
document.querySelector(#inp1”).addEventListener(“输入”,函数(){
var enabled=this.value.length>0
document.queryselectoral(“#needsToNotBeFocusable[数据索引]”).forEach(函数(elem){
elem.tabIndex=已启用?elem.dataset.index:-1
})
})
您能详细解释一下您的问题吗?子节点不应成为突出显示?是否needsToNotBeFocusable
不可见或其他?@karthicknagarajan子节点不应能够接收键盘焦点,就像如果每个子节点上都有属性tabindex=“-1”
“在每个子节点上设置tabindex=“-1”将破坏现有的tabindex。”这意味着OP设置了标签索引,当它们是可聚焦的。仍然不明白。一个元素怎么可能是不可聚焦的,并且有一个“可聚焦时的制表符索引设置”?谢谢你的回答。>我不明白你的意思。对于一个非制表符可聚焦的元素,tabindex怎么会被破坏呢?
的子节点有自己的tabindexes,因此迭代所有子节点并将tabindexes设置为-1将覆盖已经存在的结构。但是为什么需要不可聚焦的子元素来设置tabindex
呢?因为它们仍然存在于页面上。比如说,按下按钮
应该可以聚焦于即时建议,但在我的情况下不适用,因为
子节点实际上形成了一个巨大的DOM树,所以这就是为什么我从一开始就不选择对其进行迭代,因为它确实会影响性能。您可以禁用组件,从页面中删除它们,或者删除选项卡索引。