首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jquery的虚拟键盘

使用Jquery的虚拟键盘
EN

Stack Overflow用户
提问于 2013-03-26 04:36:02
回答 2查看 5K关注 0票数 0

我有一个div,它可以作为一个按钮来操作。一旦按钮被点击,我想让它模拟按键的过程。在Stackoverflow的其他地方,人们建议使用jQuery.Event("keydown");,但所有的建议都使用绑定到按钮上的.trigger(),而不是.click。因此,我的示例代码如下所示:

代码语言:javascript
复制
var press = jQuery.Event("keydown");
press.which = 69; // # The 'e' key code value
press.keyCode = 69;

$('#btn').click( function() {
    $('#testInput').focus();
    $(this).trigger(press);
    console.info(press);
});

我在JSFiddle上设置了一个虚拟示例:http://jsfiddle.net/ruzel/WsAbS/

最后,我不想让按键填充表单元素,而是只想将事件注册为文档的按键,以便MelonJS游戏可以使用它。

更新:由于安全原因,浏览器很可能会忽略除键盘以外的任何东西来触发按键。为了更新文本输入,这个非常好的Jquery插件可以做到这一点:http://bililite.com/blog/2011/01/23/improved-sendkeys/

对于任何来这里寻找MelonJS案例的解决方案的人来说,最好使用MelonJS的me.input对象,如下所示:

代码语言:javascript
复制
$('#btn').mousedown(function() {
    me.input.triggerKeyEvent(me.input.KEY.E, true);
});

$('#btn').mouseup(function() {
    me.input.triggerKeyEvent(me.input.KEY.E, false);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-26 04:52:16

我不知道为什么,但是即使这个正确地触发了事件,它也没有用字符填充输入。

我已经修改了代码,当我们输入$(document).trigger(p)时,显示文档确实正在接收按键事件

尝试一下:http://jsfiddle.net/WsAbS/3/

代码语言:javascript
复制
var press = jQuery.Event("keydown");
press.which = 69; // # Some key code value
press.keyCode = 69;
press.target = $('#testInput');


$(document).on('keydown', function(event) {
    alert(event.keyCode);
});

$('#btn').click( function() {
    $(document).trigger(press);
});

我相信这对于你的最终目标MelonJS游戏来说应该是足够好的了。

票数 1
EN

Stack Overflow用户

发布于 2013-03-26 04:50:56

如果你想要一个虚拟键盘(顾名思义),你可以使用this one。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15624258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档