【问题标题】:auto repeat the up/down arrow key?自动重复上/下箭头键?
【发布时间】:2013-09-20 04:59:08
【问题描述】:

在 Firefox 中,当我在输入文本框内按下向上/向下箭头键时,它不会自动重复。我怎样才能做到这一点并控制每秒触发多少次按键?

更新:我使用:

$('#search_view #search').live('keydown', function(event) {
    if(event.keyCode == 40) {
       // code
    }
});

但它只是执行一次代码..我希望在按住向下箭头时重复它。

【问题讨论】:

  • 在什么情况下?滚动文档时对我来说效果很好。

标签: javascript jquery firefox


【解决方案1】:

改用.keydown() ..

引用 jQuery .keypress()

此外,修饰键(如 Shift) 导致 keydown 事件,但不会 按键事件。

箭头 fall 不属于与 Shift 相同的类别,但以特殊方式处理...... keydown 将起到作用..

更新

在你评论here is a sample that works

  • FF 3.5.x 和 3.0.11
  • IE 6、7
  • 谷歌浏览器 4.0.x
  • Safari 4.0.4

它仅不适用于 Opera(编辑:适用于 Opera 12.16),但它不适用于任何键......不仅仅是箭头......

关于速率,你不能从你的代码中改变它。它是一个系统选项(来自 BIOS 和控制面板中的键盘设置-windows-

【讨论】:

  • 我相信这将在 Firefox 中工作,但在 keypress() 工作的 Safari(可能还有其他浏览器)中不起作用。我不知道有一个插件可以根据浏览器选择正确的插件,但我猜它就在某个地方。
  • 反之亦然。它在 FF 中不起作用,但在 Safari 中起作用:/
  • 我添加了一个带有工作示例的更新..(适用于除歌剧之外的所有浏览器..)
  • 箭头键不是修饰键,它们在某些浏览器中触发的事件的行为不同。例如,Firefox 会为箭头键触发 keypress 事件,但不会为 Shift 触发。
  • @Tim,它会触发一个按键.. 但只有一个.. 而 OP 要求在按键被按下时继续事件的解决方案.. 我听到你关于箭头不是修饰符的想法。 .