我正在开发一个表情符号功能。我的问题是,当我在文本区域中有一个文本并从下拉列表中选择一个表情符号时,即使将光标放在文本的开头,该表情符号也始终会移到文本的结尾,该表情符号会转到文本的结尾这样的文字:
此处有些文字?
代码:
function insertSmiley(smiley)
{
var currentText = document.getElementById("textarea");
var smileyWithPadding = " " + smiley + " ";
currentText.value += smileyWithPadding;
currentText.focus();
}
我尝试删除currentText.focus();
,但没有帮助。我还尝试使用jQuery来保持文本区域的焦点,但表情符号仍会到达文本的结尾:
$(window).load(function(){
var lastFocus;
$("#dropdown-emojis").mousedown(function(e) {
return false;
});
});
如何使表情符号显示在放置光标的位置?
答案 0 :(得分:1)
使用.selectionStart和.selectionEnd知道光标在哪里。
var startPosition = myElement.selectionStart;
var endPosition = myElement.selectionEnd;
if(startPosition == endPosition){
newString= currentText.value.substring(0,startPosition)+ " " + smiley + " " + currentText.value.subString(endPosition,currentText.value.lenght());