展开元素时保持插入位置的满足感?

时间:2012-05-23 12:09:43

标签: jquery selection contenteditable rangy

我有这个问题,我试图在this jsFiddle中展示。我满足于简单的html - 只是文本和一个<B>元素。我的问题是关于插入符号位于<B>元素内部并且用户点击“X”键的情况。然后成功展开<B>元素,但插入符号更改位置并移动到展开的<B>元素的开头。

我希望插入符号不会改变其位置并保持在samoe位置。可能吗 ?使用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 个答案:

答案 0 :(得分:1)

我建议将插入位置存储为contenteditable元素内文本中的字符索引。我在回答你最近的一个问题时所链接的代码就是这样:

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