使用jQuery模拟按键

时间:2015-09-26 11:27:33

标签: jquery html keypress

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

    }

});

我做错了什么?

2 个答案:

答案 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

让我知道这对你有用:)

我的演示页面:

DEMO 1

DEMO 2

答案 1 :(得分:0)

这是一个test它的工作原理

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