【发布时间】:2014-06-21 21:00:14
【问题描述】:
在以下示例中单击“外部”div 容器上方的任意位置时,contenteditable span 元素将获得焦点。
<div style="margin:30px">
<span contenteditable="true" style="background:#eee">
Hello World
</span>
<div>Outside</div>
</div>
这是一个 jsFiddle: http://jsfiddle.net/AXM4Y/
我希望 contenteditable 的行为更像是一个真实的文本输入,因此只有单击 span 元素本身才能触发其焦点。我该怎么做呢?如何停止容器元素的事件捕获。我已经在父 div 上使用 jQuery 尝试过“e.stopPropagation()”,但没有成功。
【问题讨论】:
-
在 Firefox 或 IE 11 中不会发生,但在 Chrome 中会发生。它似乎包括 contenteditable 跨度的命中区域的顶部和左侧边距。看起来像一个 WebKit/Blink/Chrome 的怪事。如果可能的话,我建议避免在容器上设置边距。
-
我找到了解决方案。看看我的回答:stackoverflow.com/a/30629511/1892693
标签: html events focus contenteditable