Как я могу размыть div, где contentEditable = true? - PullRequest
13 голосов
/ 02 февраля 2011

Как я могу размыть / сфокусировать div, где contentEditable = true ?Я пытался $(elm).blur() и $(elm).attr('contentEditable', false);

Ответы [ 4 ]

34 голосов
/ 12 ноября 2014

Я бы добавил другое решение, основанное на правильном ответе Omnicon.Я раздвоил его скрипку и обновил ее .

Хитрость заключается в том, чтобы удалить все диапазоны после вызова размытия:

$(".editable").blur();
window.getSelection().removeAllRanges();
7 голосов
/ 02 февраля 2011

$("div[contentEditable]").blur() для размытия всех элементов contentEditable.

$("#elementId").blur() для размытия элемента на id.

3 голосов
/ 29 октября 2014

Предлагаемое решение Романа Реша не работает, когда вы нажимаете на элемент и сразу после этого нажимаете клавишу ввода.Это не размывает, но создает разрывы / деления строк.

Можно полностью предотвратить это поведение.

Посмотреть эту скрипку

$('<div class="temp-contenteditable-el" contenteditable="true"></div>') .appendTo('body').focus().remove();

0 голосов
/ 05 июня 2016

При добавлении ко всем ответам, когда используете что-то вроде

$(".editable").blur()

, подумайте о размытии только сфокусированного, например

$(".editable:focus").blur()

Если нет, иногда вы можете получить хорошие пробники

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...