백 스페이스/삭제 키를 누를 때 강조 표시된 텍스트를 <span>
으로 줄이려면 다음 기능을 사용합니다. 텍스트가 선택된 경우 줄 바꿈
$(document).keydown(function(event) {
var selection = document.getSelection();
typoNumber++;
if (event.keyCode == 8 || event.keyCode == 46) {
event.preventDefault();
var span = document.createElement("span");
span.setAttribute('id', 'typo' + typoNumber);
span.className = "deleted typo";
span.setAttribute('contenteditable', 'false');
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(span);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
});
.deleted.typo {
background: rgba(100,100,100,0.25);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Here is text to experiment with.</div>
<span>
요소의 무리를하지 않도록) 선택이있는 경우 함수가 실행하려는. 나는 다음에 첫 번째
if
문을 변경 시도 :
if (selection !== '' && event.keyCode == 8 || event.keyCode == 46) {
을하지만, 작동하지 않았다. 어떤 아이디어?
. 고마워, @ rorymorris89! –