多个HTML元素可以同时获得焦点吗?

问题描述 投票:0回答:5

我正在编写一个 JavaScript 报告组件,它需要多个 LI,即通过视觉反馈将列表一起选择为一组。

我正在考虑调整

onfocus
活动。多个 HTML 元素是否可以同时获得焦点?

不是输入,而是 DIV,所以我不需要光标。我只想将几个 DIV 与其他 DIV 分开“选择”,并以不同的颜色来模拟多个项目选择。

javascript html focus
5个回答
39
投票

不可以,您一次只能聚焦一个元素。


5
投票

正如其他答案所述,在任何给定时间只有 1 个元素可以具有焦点。 您可以做的就是向每个“选定”元素添加一个类。

一个简单的例子(使用 yui)是:

 <style type="text/css">
     .selectedItem{border: 2px dashed #c0ffee;}
 </style>
...
<ul class='listContainer'>
     <li> ... </li>
     <li> ... </li>
     <li> ... </li>
</ul>
...
<script type="text/javascript">
     Y.one('.listContainer').delegate(
         'click', 
         function(e){ e.currentTarget.toggleClass('selectedItem');}, 
         'li'
     );
</script>

4
投票

不。整个焦点是选择一个元素(就像它的“聚光灯”一样)。但如果你想要双写文本框,那么使用这个

<input type="text" name="firstbox" onchange="firstbox.value = secondbox.value; return true;">
<input type="text" name="secondbox">

2
投票

我不这么认为。如果两个文本字段同时获得焦点,哪个将接收输入?您可以“模拟”这一点(一个字段具有焦点并且代码“重复”这些值),但一次只能有一项可以成为“焦点”。


0
投票

不。 从可访问性的角度来看,一个广泛的答案是 Focus 使屏幕阅读器能够识别并宣布动态网站功能,向用户传达屏幕上发生的情况。如果网页一次允许多个焦点,则可能会破坏键盘导航和画外音行为的持久性,并且您的应用程序将不符合可访问性标准。

© www.soinside.com 2019 - 2024. All rights reserved.