Bryan Allo가 게시 한 대답은 div의 끝에 커서를 놓아야한다는 점을 고려하지 않았습니다. 그렇지 않으면 사용자가 CTRL-End를 눌러야합니다.
이
는 또한
http://jsfiddle.net/82dS6/ 행동에서 볼 수 내가 제안 솔루션입니다 :
function setEndOfContenteditable(contentEditableElement){
// Taken from http://stackoverflow.com/a/3866442/1601088
var range,selection;
if(document.createRange){//Firefox, Chrome, Opera, Safari, IE 9+
range = document.createRange();
range.selectNodeContents(contentEditableElement);
range.collapse(false);
selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}
else if(document.selection){//IE 8 and lower
range = document.body.createTextRange();
range.moveToElementText(contentEditableElement);
range.collapse(false);
range.select();
}
}
function replaceDivWithP(el){
$(el).find('div').each(function(){
$(this).replaceWith($('<p>' + $(this).html() + '</p>'));
});
}
$(function(){
$(".text").simpleEdit();
});
$('.textarea').bind('keyup', function(){
replaceDivWithP(this);
setEndOfContenteditable(this);
});
이 알고있는 문제를 게시 할 예정이 하나의 함수 호출의 양을 최소화하기 위해 목록 버튼의
click
이벤트를 사용합니다. div 요소 대신 단락 태그로 컨테이너 요소를 대체하면 연속 목록은 잘못된 html 인 단락의 하위 요소가됩니다. –