-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Description
html 原生的 focus 方法适用于:input、select、button、textarea、radio、checkbox 等元素。
实际开发场景中,可能需要用 div 替代表单元素,或是在 div 上调用 focus() 方法。
那么最简单粗暴的方法就是:添加 contenteditable 属性。
<div contenteditable="true" id="myText">这是一段可编辑的段落。请试着编辑该文本。</div>
然后就可以像 input 一样,调用 focus() 和 blur() 方法。
function getfocus() {
document.getElementById("myText").focus();
}
function losefocus() {
document.getElementById("myText").blur();
}
补充一点:哪些HTML元素可以接收焦点?(包括键盘导航聚焦)
a[href], // a 标签有 href 属性
area[href],
input:not([disabled]),
select:not([disabled]),
textarea:not([disabled]),
button:not([disabled]),
iframe,
[tabindex],
[contentEditable=true] {
&:not([tabindex='-1']) {
/* your SCSS for focusable elements goes here */
}
}
属性说明:
contenteditable:true | false规定元素文本是否可编辑;tabindex:0 | -1 | x
0:tab键可获取焦点;
-1:tab键不可获取焦点;
x:x>0,x越小获取焦点优先级越高;值相同时,按照 DOM 顺序。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels