【发布时间】:2017-09-26 22:54:24
【问题描述】:
我目前正在尝试使用 contenteditable div 制作编辑器,但我遇到了一个问题,即在开始时单击 child-2 中的退格键会导致合并 child- 1 和 child-2 在一起,这违背了自己的目的。
我正在使用函数查找当前插入符号的位置:
caret: function() {
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt) return sel.getRangeAt(0).startOffset;
}
return null;
}
这一直运行良好,但要解决合并问题,我需要找出当前选择了哪个元素并将该数据与插入符号位置一起使用以使用 event.preventDefault() 并停止潜在的合并。
这是我正在使用和谈论的框架:
<div id="parent" contenteditable="true">
<div id="child-1">
One
</div>
<div id="child-2">
Two
</div>
<div id="child-3">
Three
</div>
</div>
为了找到选定的元素,我试过这个:
console.log(document.activeElement);
查看这是否会打印出所选的子元素的 ID,尽管这会将整个父元素输出到控制台,而不仅仅是 ID。
【问题讨论】:
标签: javascript jquery html css contenteditable