1

contenteditable div がフォーカスを失うことを完全に防ぐ必要があります。

blurハンドラー内で次のすべてを試しました。

event.preventDefault();
event.stopPropagation();
return false;

私が見つけた唯一の解決策は、次のように setTimeout を使用して要素を reFocus することです。

$(element).on('blur', function(){
     var el = $(this);

     setTimeout(function(){
         el.focus();
     },5);
});

これにより、要素がフォーカスされたままになりますが、キャレットはもちろん、現在の選択状態/位置を維持するのではなく、先頭に移動します。

キャレットの位置/選択をぼかしに保存し、フォーカスに合わせて再配置するコードを書く前に、他の誰かがぼかしイベントを完全に防ぐ方法を見つけてくれることを望んでいました。

前もって感謝します。

4

0 に答える 0