如何用jQuery替换击键?

我需要能够用jQuery替换键击。 按下右箭头时,我希望按下Tab键。 到目前为止我有:

   $(function () { $("select").each( function() { $(this).keydown(function(event) { if (event.which == '39') { $(this).simulate("keydown", { keyCode: 9, ctrlKey: false, shirtKey: false }); $(this).simulate("keypress", { keyCode: 9, ctrlKey: false, shirtKey: false }); $(this).simulate("keyup", { keyCode: 9, ctrlKey: false, shirtKey: false }); return false; } }); }); });  

39是右箭头,9是标签按钮。 此外,模拟keydown以递归方式调用事件处理程序,这显然很糟糕,但即使没有该行,这仍然无效。

我正在使用位于(http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/simulate/jquery.simulate.js?r=6063)的jquery.simulate.js因为我无法’找到一种只用jQuery来模拟按键的方法。

按键只是不模拟实际按键。

您无法使用javascript模拟实际的按键。 它是浏览器安全的核心组件。 想象一下能够模拟Alt-Tab或Ctrl-Shift-Del。

当然,您可以定义一个封装您想要触发的行为的方法,并在按下特定键时调用该方法。

因此,例如,当有人在另一个选择元素上按下右箭头时跳转到下一个选择元素,我会保留页面上所有选择元素的列表; 当按下右箭头时,我会在该列表中找到当前聚焦的选择的位置,而下一个选择.focus()。