Мне нужно иметь возможность заменить нажатие клавиши на jQuery. Когда нажата стрелка вправо, я хочу, чтобы вместо нее была нажата клавиша табуляции. Пока что у меня есть:
<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", { keyCode: 9, ctrlKey: false, shirtKey: false });
$(this).simulate("keyup", { keyCode: 9, ctrlKey: false, shirtKey: false });
return false;
}
});
});
});
</script>
39 - стрелка вправо, а 9 - кнопка вкладки. Кроме того, симуляция нажатия клавиш рекурсивно вызывает обработчик событий, что, очевидно, плохо, но даже без этой строки это все равно не работает.
Я использую jquery.simulate.js, расположенный в (http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/simulate/jquery.simulate.js?r=6063), потому что я не мог найти способ имитировать нажатие клавиши только с помощью jQuery.
Нажатие клавиши просто не имитирует фактическое нажатие клавиши.