我正在编写一个 JavaScript 报告组件,它需要多个 LI,即通过视觉反馈将列表一起选择为一组。
我正在考虑调整
onfocus
活动。多个 HTML 元素是否可以同时获得焦点?
不是输入,而是 DIV,所以我不需要光标。我只想将几个 DIV 与其他 DIV 分开“选择”,并以不同的颜色来模拟多个项目选择。
不可以,您一次只能聚焦一个元素。
正如其他答案所述,在任何给定时间只有 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>
不。整个焦点是选择一个元素(就像它的“聚光灯”一样)。但如果你想要双写文本框,那么使用这个
<input type="text" name="firstbox" onchange="firstbox.value = secondbox.value; return true;">
<input type="text" name="secondbox">
我不这么认为。如果两个文本字段同时获得焦点,哪个将接收输入?您可以“模拟”这一点(一个字段具有焦点并且代码“重复”这些值),但一次只能有一项可以成为“焦点”。
不。 从可访问性的角度来看,一个广泛的答案是 Focus 使屏幕阅读器能够识别并宣布动态网站功能,向用户传达屏幕上发生的情况。如果网页一次允许多个焦点,则可能会破坏键盘导航和画外音行为的持久性,并且您的应用程序将不符合可访问性标准。