使用 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
让我知道这对你有用:)
我的演示页面:
这是一个 test 它有效
var e = $.Event('keypress');
e.which = 87;
$('#canvas').trigger(e);
我想用 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让我知道这对你有用:)
我的演示页面:
这是一个 test 它有效
var e = $.Event('keypress');
e.which = 87;
$('#canvas').trigger(e);