divにテキストがあり、カーソルを使用してテキストを選択してテキストを削除できるようにします。選択/ハイライトされたテキストを削除
正常に動作しますが、テキストをクリックするとすべてが削除されます。クリックしてドラッグして選択すると、正常に動作します。
テキストを正しく機能させるにはどうすればよいですか。ユーザーがテキストをクリックすると、すべてが削除されるべきではありません。
jsFiddleテスト用です。
のjQuery:
if (window.getSelection().toString() != "") {
selectedText = window.getSelection().toString()
var text1 = $(".selectable").text().split("")
pointStart = window.getSelection().anchorOffset
pointEnd = window.getSelection().focusOffset
if (pointEnd < pointStart) {
pointStart = pointEnd
}
text1.splice(pointStart, selectedText.length);
text1 = text1.join("")
} else {
selectedText = $(".selectable").text()
var text1 = ""
}
$(".selectable").text(text1)
例HTML:
<div class="selectable">
Hello world what is 進撃の巨人 reality test test... test.
</div>
EDIT:潜在的な解決策:
if (window.getSelection().toString() == "") {
return false;
}
これはあなたのようですその動作が原因です。テキストが選択されていない場合は、すべてのテキストを取得してtext1を空の文字列に設定します。最後のコード行は、divのテキストをtext1に設定します。 – spaceman