Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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及其子节点的关注?_Javascript_Html_Css - Fatal编程技术网

Javascript 有没有办法禁用对div及其子节点的关注?

Javascript 有没有办法禁用对div及其子节点的关注?,javascript,html,css,Javascript,Html,Css,假设我们有一个DOM: ... <div> // child nodes </div> <div id="needsToNotBeFocusable"> // child nodes </div> ... 。。。 //子节点 //子节点 ... 有没有办法使及其子节点不可聚焦 在每个子节点上设置tabindex=“-1”将破坏现有的tabindex。首先,在“按tab键不聚焦”和“从不聚焦(通过编程、单击或按tab)”之间存在区别。

假设我们有一个DOM:

...
<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树,所以这就是为什么我从一开始就不选择对其进行迭代,因为它确实会影响性能。您可以禁用组件,从页面中删除它们,或者删除选项卡索引。