使 div 无法获得焦点(如工具栏按钮)
Make a div unable to get focus (like toolbar buttons)
有没有办法让div无法获得焦点?这是工具栏按钮的正常行为。
假设焦点在文本输入上。单击 div 不应使文本输入的焦点丢失。
这是一个基本设置:
html:
<div id="toolbar-button">
Button
</div>
<input id="input">
我试图重新关注 div 的 mousedown
事件,但确实如此
es 不工作:
document.getElementById('toolbar-button').addEventListener('mousedown', function(event) {
document.getElementById('input').focus();
})
使用 click
事件重新获得点击的焦点,但当鼠标按钮仅按下时焦点仍然丢失(并且点击事件之后会发生不被允许)。
这是一支笔:
http://codepen.io/anon/pen/oxjPva
我知道可以通过设置 tabindex = "-1"
使元素不在选项卡上获得焦点。但这对鼠标事件不起作用。
将此行添加到您的侦听器:
event.preventDefault();
它将防止焦点设置在按钮上,这是按下按钮时的默认操作。
有没有办法让div无法获得焦点?这是工具栏按钮的正常行为。
假设焦点在文本输入上。单击 div 不应使文本输入的焦点丢失。
这是一个基本设置:
html:
<div id="toolbar-button">
Button
</div>
<input id="input">
我试图重新关注 div 的 mousedown
事件,但确实如此
es 不工作:
document.getElementById('toolbar-button').addEventListener('mousedown', function(event) {
document.getElementById('input').focus();
})
使用 click
事件重新获得点击的焦点,但当鼠标按钮仅按下时焦点仍然丢失(并且点击事件之后会发生不被允许)。
这是一支笔:
http://codepen.io/anon/pen/oxjPva
我知道可以通过设置 tabindex = "-1"
使元素不在选项卡上获得焦点。但这对鼠标事件不起作用。
将此行添加到您的侦听器:
event.preventDefault();
它将防止焦点设置在按钮上,这是按下按钮时的默认操作。