用 jQuery 模拟按键

使用 jQuery,如何模拟(触发器?)当点击一个链接时,是否使用 KeyPress?例如,当用户单击以下链接时:

<a id="clickforspace" href="#">Click Here</a>

然后,通过点击链接,就好像他们按下了键盘上的“空格键”。

我猜是这样的:

$("#clickforspace").click(function(e) {
e.preventDefault();
//... Some type of code here to initiate "spacebar" //
});

对于如何实现这一点有什么想法吗?

166627 次浏览

你可以试试这个 SendKeys jQuery 插件:

Http://bililite.com/blog/2011/01/23/improved-sendkeys/

中的插入点插入字符串 一个具有 contenteditable = true 的输入、 textarea 或其他元素 插入点当前不在元素中,它会记住位置 插入点是最后一次调用 sendkey 的时间(如果 插入点从来不在元素中,而是附加到末尾)。

来自 jQuery 的 keypress 事件就是用来完成这类工作的。可以通过将字符串“ keypress”传递给。触发器()。但是,更具体地说,您实际上可以传递一个 jQuery。事件对象(将类型指定为“ keypress”) ,并提供您想要的任何属性,例如空格键代码。

Http://docs.jquery.com/events/trigger#eventdata

有关更多细节,请阅读上述文档。

我相信这就是你要找的:

var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 40;
$("whatever").trigger(press);

来自 给你

这种方法是有效的:

var event = jQuery.Event('keypress');
event.which = 13;
event.keyCode = 13; //keycode to trigger this for simulating enter
jQuery(this).trigger(event);

另一个选择:

$(el).trigger({type: 'keypress', which: 13, keyCode: 13});

Http://api.jquery.com/trigger/