2012-05-23 3 views
0

this jsFiddle에 표시하려고 시도한이 문제가 있습니다. 나는 단순한 html - 단지 텍스트와 하나의 <B> 엘리먼트 인 contenteditable을 가지고있다. 제 질문은 캐럿이 <B> 요소 안에 있고 사용자가 "X"키를 친 상황입니다. 그런 다음 <B> 요소가 성공적으로 풀 렸지만 캐럿은 위치를 변경하고 래핑되지 않은 <B> 요소의 시작 부분으로 이동합니다.요소를 래핑 해제 할 때 contenteditable에서 캐럿 위치를 유지 하시겠습니까?

캐럿이 위치를 변경하지 않고 samoe 위치에 머물러 있기를 바랍니다. 가능한가? preferrably 솔루션을 사용하여 Rangy library?

코드는이 질문의 목적을 위해 단순화 :

<div id="contenteditable" contenteditable="true"> 
    text text text text <b>bold bold bold</b> text text text 
</div> 

$(document).ready(function(){ 
    $('#contenteditable').bind('keyup', function(e){ 
    if (e.which == 88) { 
     $('#contenteditable').find('b').contents().unwrap(); 
    } 
    }); 
});​ 

답변

1

나는 당신의 contenteditable 요소 내부의 텍스트 내의 문자 인덱스와 같은 캐럿 위치를 저장하는 건의 할 것입니다. 나는 당신의 최근의 질문에 대한 대답에 연결된 동일한 코드는 할 것이다 :

https://stackoverflow.com/a/10682429/96100

+0

와우, 너무 독창적이다. 결코 그렇게 쉬운 일이 될 것이라고 생각하지 않았습니다. 나는 여러 가지 어려운 방법을 시도했지만, 이것은 간단하다 :-) 고마워! – Frodik

+0

간단! 이 간단한 부분은 어디에 있습니까? – vsync

관련 문제