我想用jQuery模拟一个按键。
我已经尝试过了:
$("#canvas").trigger( jQuery.Event( 'keypress', { keyCode: 87, which: 87 }) );
但没有发生任何事情。
完整代码:
$(document).on('keydown', function(e) {
if(e.keyCode == 49) {
$("#canvas").trigger( jQuery.Event( 'keypress', { keyCode: 87, which: 87 }) );
}
});
我做错了什么?
答案 0 :(得分:2)
你可以尝试这个:
您可以创建Event object
$('#canvas').trigger(jQuery.Event('keypress', {keyCode: 87, which: 13}));
您可能需要尝试设置哪个参数,例如keyCode.
或
真正的答案必须包括keyCode:
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
e.keyCode = 50
$("input").trigger(e);
即使jQuery的网站说哪个和keyCode正常化,但他们却非常错误。为e.which和e.keyCode执行标准的跨浏览器检查始终是最安全的,在这种情况下只需定义两者。
或
jQuery有一个.keypress
方法,不接受模拟按键的参数。
$("#canvas").keypress();
将在#canvas
如果您还要选择按下了哪个键,则可以使用.trigger
。此示例来自Docs.
var e = $.Event("keydown", { keyCode: 87}); //"keydown" if that's what you're doing
$("body").trigger(e);
密钥代码87是javascript中的Key code backspace
让我知道这对你有用:)
我的演示页面:
答案 1 :(得分:0)
这是一个test它的工作原理
var e = $.Event('keypress');
e.which = 87;
$('#canvas').trigger(e);