如何重复触发键盘按下事件?

时间:2019-05-28 15:42:36

标签: jquery click keydown

我正在使用html和jquery设置一个逐步的帮助系统。完成一个步骤后,如果单击“下一步”按钮,则可以看到下一步。我想允许用户也按向右箭头键以向前移动向导。 我将触发器设置为模拟点击,但只能运行一次。


$(".next").click(function(){
    //function
});

$("body").keydown(function(e) {
  if(e.keyCode == 39) { // right
    $(".next").trigger('click'); // simulate the click on .next
  }
}); // keydown

这里有一个演示: http://jsfiddle.net/mlarsen1982/sqrx9gz7/5

2 个答案:

答案 0 :(得分:0)

您的身体元素可能被吹走了。尝试将keydown事件处理程序添加到文档而不是正文中。

$(".next").click(function(){
    //function
});

$(document).keydown(function(e) {
  if(e.keyCode == 39) { // right
    $(".next").trigger('click'); // simulate the click on .next
  }
}); // keydown

答案 1 :(得分:0)

众所周知,由于现代浏览器的安全功能,无法添加关键事件是不可靠的。一种更可靠的解决方案是将keypress事件的逻辑提取到其自己的函数中并直接调用它,例如:

$(".next").click(function(){
  showNext();
});

$("body").keydown(function(e) {
  if (e.which === 39) {
    showNext();
  }
});

function showNext() {
  // your logic here...
}