使用jQuery模拟Keypress

时间:2009-09-23 20:39:40

标签: javascript jquery keyboard

使用jQuery,如何在点击链接时模拟(触发?)KeyPress?例如,当用户点击以下链接时:

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

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

像这样,我假设:

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

关于如何实现这一目标的任何想法?

5 个答案:

答案 0 :(得分:133)

我相信这就是你要找的东西:

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

来自here

答案 1 :(得分:35)

另一种选择:

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

http://api.jquery.com/trigger/

答案 2 :(得分:13)

来自jQuery的keypress事件意味着要做这种工作。您可以通过将字符串“keypress”传递给.trigger()来触发事件。但是更具体地说,您实际上可以传递jQuery.Event对象(将类型指定为“keypress”),并提供您想要的任何属性,例如键码是空格键。

http://docs.jquery.com/Events/trigger#eventdata

阅读以上文档了解更多详情。

答案 3 :(得分:11)

您可以尝试使用此SendKeys jQuery插件:

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

  

$(element).sendkeys(string)在插入点插入字符串   输入,textarea或其他具有contenteditable = true的元素。如果   插入点当前不在元素中,它会记住在哪里   插入点是最后一次调用sendkeys的时候(如果是   插入点从不在元素中,它附加到结尾)。

答案 4 :(得分:5)

这有效:

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