在光标移动之前捕获array按下
Capture down array press before cursor is moved
如果光标位于输入框中的某个位置,在Firefox将光标移动到框的末尾之前,是否有一些方法可以使用keyup
捕获该位置?
我正在为每个输入框做一个下拉建议,我只希望在光标已经在输入框的末尾时将建议移动进去。但是,当我尝试捕获光标位置来测试这一点时,它总是返回结束,因为光标在事件处理程序开始之前移动到结束。
所以我找到了一个解决方案,但它涉及一个全局变量,这对于这样的小东西来说似乎很混乱。我声明一个变量
// global scope
var lastCursorPosition;
然后我在inputBox上有一个keydown
事件处理程序
inputBox.onkeydown = function(event) {
if(event.keyCode === 40) {
lastCursorPosition = cursorPosition(inputBox);
}
};
最后,在keyup
事件中(其中包含其他内容),我执行
inputBox.onkeyup = function(event) {
if(event.keyCode === 40 && lastCursorPosition >= inputBox.value.length - 1) {
// show suggestions
}
};
如果有人有更模块化的解决方案,我很乐意听到。
BTW:如果有人好奇,我正在使用这个答案中给出的cursorPosition
函数。
相关文章:
- 按下按钮时保存cookie
- DataTable按下键选择扩展/导航
- 当没有文本输入聚焦时检测空格键按下
- 当按下一个键时,请多次按下不同的键
- 当用户按下回车键时,自动在text区域/text中插入消息
- 如何在用户按下F5键或单击浏览器时显示自定义的fancybox's后退/关闭按钮
- 键按下上的正则表达式 仅限制数字
- 如何在Firefox中获取剪贴板文本和html当用户按下“;Ctrl+V”;
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 确定用户按下键(onKeyUp)后的时间量
- Jquery/Javascript:通过按下按钮显示数组中的随机图像
- 如果未按下该按钮,则在30秒内自动执行该功能
- 正如我所能做的引导提醒,按下一个按钮可以更改语言
- 按下所有类别按钮
- 捕捉TAB键按下键向上
- 如何区分哪些'输入'键被按下
- 当按下箭头键时,我的图像以一种奇怪的方式跳跃(HTML+JS)
- 检查某个键是否按下两次
- 在光标移动之前捕获array按下