html - 为什么 contentEditable=true div 在通过选项卡聚焦时不接受文本输入?
问题描述
为了可视化我的问题,我创建了以下 html 结构:
- 父亲 div
- 一个儿童 div
两者都具有相同的属性:contenteditable="true" tabindex="0"
.
主.html:
<html>
<div>
<div contenteditable="true" tabindex="0">
firstDivText
<div contenteditable="true" tabindex="0">
secondDivText
</div>
</div>
</div>
</html>
问题:
仅使用选项卡导航(tabindex 为 0,因此允许),我可以毫无问题地导航到父亲和孩子。
当焦点(从选项卡给出)在父元素上时,我可以立即开始输入以修改其上下文(contentEditable true)。
但是当焦点在子元素上时,我必须点击它才能修改文本!
问题:
- 为什么会这样?
- 我该如何修复它,以便当前焦点所在的元素将“接收”击键?
不想避免使用 contentEditable 也不想使用 jquery :S
解决方案
您最好使用输入并避免内容可编辑,您可以将其样式设置为相同。
.myInput{
background:rgba(0,0,0,0);
border:none;
}
编辑:如果你真的必须,你可以在焦点上触发点击事件
$(".Mycontenteditable").focus(function(){
$(this).click();
});
推荐阅读
- python - 使用 int 和 nan 将数据帧打印到 csv
- python - 如何使用pyqt5浏览器实现打印功能
- firebase-storage - 下载 URL 是永久的吗?
- php - Laravel 项目显示此页面无法正常工作,68.183.89.5 目前无法处理此请求。ubantu 服务器 Linux 上的 HTTP 错误 500
- vue.js - 渲染功能部分工作,我该如何解决这个问题?
- sql - SQL Server:按组组合值
- c# - LINQ 比较 datetime.now ddmmyyyy
- python - 匹配之前没有特定单词的任何点
- python - 为什么我不能在进程中启动线程?
- python - Django REST Framework - 序列化程序看不到字段