如何解决如何用jQuery替换击键?
| 我需要能够用jQuery替换击键。当按下向右箭头时,我希望改为按下Tab键。到目前为止,我有:<script type=\"text/javascript\" src=\"jquery-1.6.1.min.js\"></script>
<script type=\"text/javascript\" src=\"jquery.simulate.js\"></script>
<script type=\"text/javascript\">
$(function () {
$(\"select\").each( function() {
$(this).keydown(function(event) {
if (event.which == \'39\') {
$(this).simulate(\"keydown\",{ keyCode: 9,ctrlKey: false,shirtKey: false });
$(this).simulate(\"keypress\",shirtKey: false });
$(this).simulate(\"keyup\",shirtKey: false });
return false;
}
});
});
});
</script>
39是向右箭头,而9是Tab键。同样,模拟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()下一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。