Я хочу предотвратить потерю фокуса в области contentEditable, если за пределами этой области сделан щелчок. Некоторые примеры HTML выглядят так:
<div id="content">
<p>Hello</p>
</div>
<div id="clickThis">
<p>If you click on this or anywhere for that matter after focusing on Hello, you lose your focus on Hello</p>
</div>
Пример JavaScript выглядит следующим образом:
$(document).ready(function()
{
$('#content')[0].contentEditable=true;
$('#clickThis').bind('click',function(e)
{
console.log(window.getSelection().getRangeAt(0).startContainer);
e.preventDefault();
});
});
Когда вы щелкаете по элементу #clickThis
или где-либо за пределами элемента #content
, вы теряете фокус на элементе #content
, даже если вызываете функцию предотвратительного вызова события click.
Кроме того, диапазон изменяется в момент срабатывания события щелчка, поэтому я не могу просто вернуться к предыдущему диапазону после того, как щелчок произошел. Есть ли способ сохранить положение курсора и фокус после щелчка?
Спасибо.
jsFiddle: http://jsfiddle.net/VivekVish/FKDhe/4/