如何通过按不同的键来模拟按键
How to simulate a key press by pressing a different key
当你开始在Wordpress搜索插件上键入一些东西时,我想隐藏搜索输入下面出现的"建议"选项列表,我需要的是在按下"Delete"键时触发"Escape"键事件,我尝试了下面的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.');
}
});
老答案(这里留着这个,因为它很相似。)
你的问题是X/Y问题。您不需要触发另一个keydown事件,只需要重复相同的功能,所以将esc
事件的代码提取到一个函数中,并在del
键的事件中重用。现场演示(点击)。
$('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!');
}
相关文章:
- 通过使用jQuery对元素重新排序来模拟CSS Column垂直内容流
- 如何使用jquery关闭模态窗口,通过模拟模态's关闭按钮
- 如何通过javascript在网页上模拟ESC按键
- 通过复选框模拟 CTRL 按键
- 未通过代理找到方法模拟
- 如何通过按不同的键来模拟按键
- 通过代码模拟ctrl+/-
- 如何通过Selenium IDE模拟鼠标点击网站上的空白区域
- 如何在Drupal 7中通过JS或Jquery模拟“添加另一个项目”
- 我可以通过单击重新加载扩展在本地模拟更新过程吗?
- 如何通过 Mechanize 模拟支持 JavaScript 的浏览器
- 我的服务器正在寻找一个文件,但我有一个字符串,我将如何通过jquery模拟文件上传
- JQuery JQGrid插件,如何通过点击链接模拟工具栏过滤操作
- 不能通过javascript模拟点击提交按钮
- 我如何通过Chrome扩展模拟文件拖放上传
- 通过函数模拟按钮单击事件
- 通过javascript模拟键盘事件
- 通过JavaScript模拟提交按钮点击
- 通过clientlistener以编程方式触发/模拟点击事件
- 使用按钮'通过JavaScript模拟按钮点击;s值,而不是其id