jQuery 虚拟键盘 - 设置左箭头和右箭头
Posted
技术标签:
【中文标题】jQuery 虚拟键盘 - 设置左箭头和右箭头【英文标题】:jQuery Virtual Keyboard - set Arrow LEFT and Arrow Right 【发布时间】:2013-10-21 09:50:00 【问题描述】:我花时间创建了一个 jQuery 虚拟键盘,当焦点设置为输入时它会显示它。我几乎完成了从键盘到工作的所有按钮,但我坚持为按键制作功能:Arrow Left
和 Arrow Right
。
请懂 jQuery 的人帮助我了解如何为左箭头和右箭头执行这些功能。不知何故,我知道需要在输入字段中识别光标的位置,并且需要以某种方式将其移动 +1 或 -1。
关于我的虚拟键盘的示例详情请看here。
已解决:我找到了正确的解决方案。 最终工作的SCRIPT is here。
【问题讨论】:
类似改变光标位置的东西?如果是的话,这个链接可以帮助你Click Here 在输入框内左右移动光标 或者你可以使用jquery Caret 我认为它比设置光标位置更复杂。该函数需要找到当前光标位置在哪里,而不是用+1或-1字符改变位置。我知道插入符号可能会有所帮助。但是我没有足够的经验来理解如何制作我上面描述的功能。非常感谢您的努力!!! 没错。这就是你所需要的。你可以使用他们的代码。看看他们是如何实现的。顺便说一句,你的键盘看起来不错;] 【参考方案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 postPandincus 的致谢
jsFiddle
【讨论】:
非常感谢你的帖子——我已经见过了。这个例子是如何设置光标出现在位置 4 ......但我需要一种方法来识别当前位置并将光标移动到其他位置......你的例子可能在第二部分很有用......当,我知道光标的位置,然后从当前位置更改为我想要的位置... 查看我的更新人...如果我的回答对您有帮助,您可以接受:] 下次在 google 上进行一点搜索时,可以像我一样在 2 分钟内解决您的问题。以上是关于jQuery 虚拟键盘 - 设置左箭头和右箭头的主要内容,如果未能解决你的问题,请参考以下文章