Как я могу размыть / сфокусировать div, где contentEditable = true ?Я пытался $(elm).blur() и $(elm).attr('contentEditable', false);
$(elm).blur()
$(elm).attr('contentEditable', false);
Я бы добавил другое решение, основанное на правильном ответе Omnicon.Я раздвоил его скрипку и обновил ее .
Хитрость заключается в том, чтобы удалить все диапазоны после вызова размытия:
$(".editable").blur(); window.getSelection().removeAllRanges();
$("div[contentEditable]").blur() для размытия всех элементов contentEditable.
$("div[contentEditable]").blur()
$("#elementId").blur() для размытия элемента на id.
$("#elementId").blur()
id
Предлагаемое решение Романа Реша не работает, когда вы нажимаете на элемент и сразу после этого нажимаете клавишу ввода.Это не размывает, но создает разрывы / деления строк.
Можно полностью предотвратить это поведение.
Посмотреть эту скрипку
$('<div class="temp-contenteditable-el" contenteditable="true"></div>') .appendTo('body').focus().remove();
При добавлении ко всем ответам, когда используете что-то вроде
$(".editable").blur()
, подумайте о размытии только сфокусированного, например
$(".editable:focus").blur()
Если нет, иногда вы можете получить хорошие пробники