Javascript 在contenteditable上返回焦点(并恢复光标位置)

Javascript 在contenteditable上返回焦点(并恢复光标位置),javascript,contenteditable,rangy,Javascript,Contenteditable,Rangy,我有一个函数,当用户在内容可编辑的div中键入@+min 3个字符时,它会创建一个自动完成建议列表 当用户单击列表中的某个项目时,我需要自动完成并将焦点返回到可编辑的内容;不幸的是,我无法恢复光标的位置: $suggestions.on('click', '.list-item', function(event) { var newTag = $(event.target).html(); var saved = rangy.saveSelection()

我有一个函数,当用户在内容可编辑的div中键入@+min 3个字符时,它会创建一个自动完成建议列表

当用户单击列表中的某个项目时,我需要自动完成并将焦点返回到可编辑的内容;不幸的是,我无法恢复光标的位置:

    $suggestions.on('click', '.list-item', function(event) {
        var newTag = $(event.target).html();
        var saved = rangy.saveSelection();

        $field.html($field.html().replace(/(^|[^a-zA-Z0-9@#-])@([a-zA-Z0-9_]{3,})/ig, '$1<span class="mentionTag chip">' + newTag + '</span>'));
        closeSuggestions(currentWord);

        $field.focus();
        rangy.restoreSelection(saved);
    });
$suggestions.on('click','list item',函数(事件){
var newTag=$(event.target.html();
var saved=rangy.saveSelection();
$field.html($field.html().replace(/(^ |[^a-zA-Z0-9@#-])@([a-zA-Z0-9{3,})/ig,'$1'+newTag+'');
关闭建议(currentWord);
$field.focus();
rangy.restoreSelection(已保存);
});
上述操作不起作用,因为光标位于contenteditable的开头;
有人能解释一下如何做到这一点吗?

我挣扎了一段时间,并与at.js合作完成了我的一个项目。试试干得漂亮@joyBlanksWell这不是我的。但是你可以相信githubI的开发人员,他曾为我的一个项目与at.js一起奋斗了一段时间。试试干得漂亮@joyBlanksWell这不是我的。但是你可以把这归功于github的开发者