【问题标题】:Can multiple HTML elements receive focus at the same time?多个 HTML 元素可以同时获得焦点吗?
【发布时间】:2023-03-15 20:10:02
【问题描述】:

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

我正在考虑调整onfocus 事件。多个 HTML 元素可以同时获得焦点吗?

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

【问题讨论】:

  • 你为什么要用多个 onfocus 来做这个!?只需在一次 onfocus 事件后调用您需要的所有内容
  • 他希望光标在所有 10 个文本输入中都闪烁,呵呵
  • 不一定是输入,而是DIV,所以我不需要光标。
  • 现在才看到你的评论。 “div”如何聚焦? onfocus 不是 div w3schools.com/tags/tag_div.asp 的事件
  • @Neb - 在 HTML 4 中,您可以通过 javascript 有效地将焦点事件侦听器分配给 div。在 HTML5 中,onfocus 是 div 的有效事件属性。同样,添加属性 tabIndex="0" 以将 div 添加到 tab 顺序。

标签: javascript html focus


【解决方案1】:

不,您一次只能关注一个元素。

【讨论】:

  • 是的,我必须在发布任何其他答案之前对其进行编辑,这样就不会出现抄袭嫌疑;)
  • 我想知道是否有任何文件证明这一点?
【解决方案2】:

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

一个简单的例子(使用 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>

【讨论】:

    【解决方案3】:

    没有。整个焦点是选择了一个元素(就像在“聚光灯”中一样)。但是如果你想要双写文本框,那就用这个

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

    【讨论】:

      【解决方案4】:

      我不相信。如果两个文本字段同时具有焦点,哪个会接收输入?您可以“模拟”这一点(一个字段具有焦点,代码“复制”这些值),但一次只能有一个项目是“焦点”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-31
        • 1970-01-01
        • 2013-04-22
        • 2010-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 2018-05-21
        相关资源
        最近更新 更多