У меня есть текст в div selectable
, и я хочу разрешить пользователю удалять текст, выбирая текст, используя их курсор.Удалить выделенный/выделенный текст
Он отлично работает, но если вы нажмете на текст, все будет удалено. Если вы нажмете и перетащите, чтобы выбрать, он отлично работает.
Что я могу сделать, чтобы оно правильно работало с моим текстом. Если пользователь нажимает на текст, он не должен удалять все.
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;
}
Это похоже на ваше другое утверждение вызывает это поведение. Когда текст не выбран, он захватывает весь текст, а затем устанавливает текст1 в пустую строку. Затем ваша последняя строка кода устанавливает текст в div в text1. – spaceman