0

我的目标:

为了能够在“keyup”上添加/修改我的内容可编辑用户输入 div 中的内容,并能够重新调整它的焦点,这样用户就不会被打断。

我的问题:

内容可编辑 div 无法正确重新聚焦。

我的例子:

http://jsbin.com/owoto4/4/

4

1 回答 1

0

我想出了一个比 .focus() 方法更有效的解决方案:

  $.fn.placeCaretAtEnd = function(){
    var el = $(this)[0];
    el.focus();
    if (typeof window.getSelection != "undefined"
      && typeof document.createRange != "undefined") {
      var range = document.createRange();
      range.selectNodeContents(el);
      range.collapse(false);
      var sel = window.getSelection();
      sel.removeAllRanges();
      sel.addRange(range);
    } else if (typeof document.body.createTextRange != "undefined") {
      var textRange = document.body.createTextRange();
      textRange.moveToElementText(el);
      textRange.collapse(false);
      textRange.select();
    }
  }

用法:

$('#myContenteditable').placeCaretAtEnd();
于 2011-03-29T16:29:45.727 回答