jQuery虚拟键盘 - 设置箭头向左和向右箭头

时间:2013-10-13 20:29:19

标签: jquery keyboard virtual arrow-keys

我花了一些时间来创建一个jQuery虚拟键盘,它在焦点设置为输入时显示。我几乎从键盘上做了所有按钮工作,但我坚持为按键创建功能:Arrow LeftArrow Right

请那些了解更好jQuery的人帮助我理解如何为Arrow left和Arrow右边做这些功能。不知何故,我明白需要在输入字段中识别光标的位置,并且需要以某种方式将其移动到+1或-1。

有关我的虚拟键盘的示例详细信息,请查看here


解决:
我找到了正确的解决方案。 最终工作SCRIPT is here

1 个答案:

答案 0 :(得分:1)

这里有一个例子:

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function setCaretToPos (input, pos) {
  setSelectionRange(input, pos, pos);
}

归功于:来自this post的CMS

修改:

function getCaretPos(input) {
    // Internet Explorer Caret Position (TextArea)
    if (document.selection && document.selection.createRange) {
        var range = document.selection.createRange();
        var bookmark = range.getBookmark();
        var caret_pos = bookmark.charCodeAt(2) - 2;
    } else {
        // Firefox Caret Position (TextArea)
        if (input.setSelectionRange)
            var caret_pos = input.selectionStart;
    }

    return caret_pos;
}

来自this post

的Pandincus

jsFiddle