使用 jQuery 模拟按键

Simulate keypress using jQuery

我想用 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 }) );

    }

});

我做错了什么?

你可以试试这个:

您可以创建一个 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 的网站说 which 和 keyCode 是规范化的,但它们是非常严重的错误。对 e.which 和 e.keyCode 进行标准的跨浏览器检查总是最安全的,在这种情况下只需定义两者。

jQuery 有一个 .keypress 方法不接受模拟按键的参数。

$("#canvas").keypress();

将在 #canvas

上触发按键

如果您还想 select 按下了哪个键,可以使用 .trigger。这个例子来自Docs.

var e = $.Event("keydown", { keyCode: 87}); //"keydown" if that's what you're doing
$("body").trigger(e);

键码87是javascript

中的Key code backspace

让我知道这对你有用:)

我的演示页面:

DEMO 1

DEMO 2

这是一个 test 它有效

var e = $.Event('keypress');
e.which = 87;
$('#canvas').trigger(e);