Javascript 如何通过按不同的键来模拟按键

Javascript 如何通过按不同的键来模拟按键,javascript,jquery,keyboard,key,Javascript,Jquery,Keyboard,Key,当你开始在Wordpress搜索插件上键入内容时,我想隐藏搜索输入下方显示的“建议”选项列表,我特别需要的是在按下“删除”键时触发“退出”键事件,我尝试了以下jquery函数,但它没有如我所料工作 $('form.search-form').keydown(function (e) { // keycode for Delete key if (e.keyCode == 46) { var a = $.Event("keydown"); // keycode for E

当你开始在Wordpress搜索插件上键入内容时,我想隐藏搜索输入下方显示的“建议”选项列表,我特别需要的是在按下“删除”键时触发“退出”键事件,我尝试了以下jquery函数,但它没有如我所料工作

$('form.search-form').keydown(function (e) {

// keycode for Delete key
if (e.keyCode == 46) {
      var a = $.Event("keydown");
      // keycode for Esc key
      a.which = 27;
      a.keyCode = 27;
      $(document).trigger(a); 
}});
有什么帮助吗?提前感谢更新(原始问题不清楚)

按下删除键时,将
keyCode
更改为
esc
键,然后使用
trigger
模拟按下
esc

$('input').keydown(function (e) {
  // keycode for delete
  if (e.keyCode == 46) {
    console.log('delete key pressed.');
    e.keyCode = 27;
    $(this.target).trigger(e);
  }
});

$('input').keydown(function (e) {
  // keycode for esc
  if (e.keyCode == 27) {
    console.log('esc key pressed.');
  }
});
旧答案(将此保留在此处,因为它类似。) 你的问题是个问题。您不需要触发另一个keydown事件,您只需要重复相同的功能,因此将
esc
事件的代码提取到一个函数中,并在
del
键的事件中重用

最好是这样做


谢谢你的回答,但不幸的是,这不是我想要的。我将用另一个词解释,我需要的是将与Esc键相关的相同操作触发到另一个键(在本例中删除)。@peterbetis这正是我所做的,我向您展示了两种方法。@peterbetis您不明白吗?在这两个示例中,无论您使用
esc
键还是
delete
键,都会调用
myFunction
。两个键的功能完全相同-正是您所要求的。我感谢您的努力,可能我解释得不够好。再次感谢您,但您的解决方案只是调用一个特定的函数,无论是否按下两个键事件中的任何一个。我需要的是将一个键附加到默认情况下由另一个键触发的相同操作上。@peterbetis查看我的更新答案。我会问“如何使用不同的键模拟按键?”。谈论事件使问题变得不清楚。
$('input').keydown(function (e) {
  // keycode for delete
  if (e.keyCode == 46) {
    myFunction(e);
  }
});

$('input').keydown(function (e) {
  // keycode for esc
  if (e.keyCode == 27) {
    myFunction(e);
  }
});

function myFunction() {
  alert('Look, Ma! Code reuse!'); 
}
$('input').keydown(function (e) {
  // keycodes for delete and esc
  if (e.keyCode == 46 || e.keyCode == 27) {
    myFunction(e);
  }
});

function myFunction() {
  alert('Look, Ma! Code optimization!'); 
}