Есть блок:
<div class="editor-content" id="editor-content" contentEditable="true" role="textbox" spellcheck="true"></div>
Как при нажатии клавиши ввода или переходе на новую строку, делать замену стандартного div
на <p class="article">
?
Вот так можно, но из-за особенностей задачи при нажатии на ENTER
, внутри блока создаются div
с br
, чтобы избежать этого - лучше использовать input
или textarea
.
const editor = document.querySelector('#editor-content');
editor.addEventListener('keypress', e => {
if (e.keyCode === 13 && !editor.textContent) {
e.preventDefault()
}
if (e.keyCode === 13 && editor.textContent) {
e.preventDefault()
addElement(editor.textContent, editor);
editor.innerHTML = '';
};
});
function addElement(text, ref) {
const p = document.createElement("p");
const content = document.createTextNode(text);
p.classList.add('article');
p.appendChild(content);
document.body.insertBefore(p, ref);
};
#editor-content {height: 1rem;width: 100%;border: 1px solid blue;outline: none;}.article {color: red;}
<div class="editor-content" id="editor-content" contentEditable="true" role="textbox" spellcheck="true"></div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Работаю с YiiПытаюсь подключить плагин validate
Стоит задание: при зажатии мыши над объектом изменить курсор на grabbingПосле отпускания - изменить курсор обратно в стандартное положение