Когда вы нажимаете кнопку underline
, подчеркивание «включается / выключается для выбора или в точке вставки.»
документация
Теперь, когда вы возвращаете Unile, больше нет символов и blur
редактируемый div, вставленный тег <u>
удаляется.Повторное нажатие на кнопку включит ее снова.
Попробуйте это в своем собственном фрагменте:
- Нажмите внутри
contenteditable
div
и нажмите underline button
- Теперь введите слово или букву
- Затем нажмите
backspace
и удалите все, что вы ввели. - Теперь просто размыть редактируемое поле и снова сфокусироваться.
- Начните набирать что-то
- Вводимое вами слово не подчеркнуто
Итак, я предлагаю вам убедиться, что сделан выбор для включения кнопки подчеркивания ... Таким образом, подчеркивание будет применяться только к выполненному выделению ... Предотвращение возможности применения подчеркивания «в точке вставки» , что не очевидно для пользователя ...
$("[contenteditable]").on("mouseup",function(){
selectionMade = (window.getSelection().type == "Range"); // True is there actually is a selection made.
$("#underline-btn").prop("disabled",!selectionMade);
});
$("#underline-btn").click(function() {
document.execCommand("underline");
console.log("Toggled underline on a selection.");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contenteditable="true">This is a contenteditable div. To recreate the bug, click inside this div and press the underline button. Now type a word or a letter. Then press backspace and delete whatever you typed. Now press the underline button again. Start typing something. The word you type will still be underlined.</div>
<button id="underline-btn" disabled>Underline</button>
Теперь у пользователя есть визуальная индикация того, может ли он использовать кнопку подчеркивания или нет.