当我开始在Wordpress搜索插件上输入内容时,我想要隐藏搜索输入下方显示的“建议”选项列表,我需要具体的是当我按下“删除”时触发“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);
}});
有任何帮助吗?提前致谢
答案 0 :(得分:3)
按下删除键后,将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 problem。您不需要触发另一个keydown事件,只需重复相同的功能,因此将esc
事件的代码提取到一个函数中,并在del
键的事件中重用。 Live demo here (click).
$('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!');
}