アイコン付きのボタンをクリックした後、私のcontenteditable divにアイコンを作成しようとしています。問題は、アイコン/ボタンを選択している間は、テキストのキャレットを失うことです。ボタンを閉じた後、このキャレットを元の場所に戻したいと思います。ボタンをクリックしながらcontenteditable div内の同じ場所にキャレットを保持する方法は?
私はこの問題を説明するためにJS-フィドルを作った:JSFiddle
PS:質問は特にキャレットについてです。アイコンが挿入されているかどうかは私にとっては大したことではありません。その部分は簡単に把握できるはずです:)。
HTML
<div id="write-mail">
<div style="position: relative;">
<div id="new-mail-content" contenteditable="true">
<div>How to return the caret where it was in the sentence after clicking the buttons?</div>
<div>Maybe prevent the caret from being removed after clicking the buttons?</div>
<div>I know I can store the current selection by using window.getSelection(). If I would be able to reactivate this selection, that would be great!</div>
</div>
<div id="emotepicker">
<button><span>✔</span></button>
<button><span>✯</span></button>
<button><span>✘</span></button>
</div>
</div>
<button class="add-icon">Add Icon</button>
</div>
CSS
#new-mail-content{
background-color: white;
min-height: 5em;
}
#write-mail button{
height: 30px;
}
#emotepicker{
display: none;
position: absolute;
left: 0px;
right: 0px;
bottom: 0px;
background-color: rgba(0,0,0,0.1);
text-align: center;
}
div{
padding: 2px;
}
jqueryの/ javascriptの
$(".add-icon").click(function(){
$("#emotepicker").toggle();
});
@FelixHäberle私のCSSへのご変更がになっている方法助けて? – RMo
http://stackoverflow.com/questions/3972014/get-caret-position-in-contenteditable-divを参照してください。エモーティコンパネルを閉じるときに編集と復元を開始するときに、キャレットの位置を保存します。 – ProgrammerV5
投稿した例はあなたを助けましたか? – ProgrammerV5