如何使用jQuery触发键组合
我编写了一些东西:
http://fincha.com/kunden/schmitt/
我放大.css(“缩放”),但我需要按钮来模拟CTRL +或CTRL –
这段代码对我不起作用:
e = jQuery.Event("keydown"); e.which = 50; $("input").trigger(e);
请帮忙!
编辑
我只是不想缩小和缩小孔页面
jQuery通过在event
对象上设置一个或多个属性来规范化事件上的修饰键。 所以,你想将event.ctrlKey
设置为true
,所以这应该适合你:
e = jQuery.Event("keydown"); e.which = 50; e.ctrlKey = true; $("input").trigger(e);
但是,根据来源评论(链接如下):
您无法轻松更改事件对象中的值(可能出于安全原因)。
因此,如果在构造Event
对象后无法设置事件的属性,则可以使用$.extend()
来设置ctrlKey
属性:
e = jQuery.Event("keydown"); fake = $.extend({}, e, {which: 50, ctrlKey: true}); $("input").trigger(fake);
另一件事:我不确定你是否试图将密钥代码50
用于+或-键。 也许你是,而且你正在使用不同的键盘布局,但根据这个演示 , 50
是用于击中2的JavaScript密钥代码 – 所以这也可能是你问题的一部分。
来源: 对jQuery API页面的评论 。
编辑:
除此之外,我不认为您实际上可以使用JavaScript更改浏览器的缩放级别,即使您“发送”键盘命令也是如此。
使用javascript访问浏览器的页面缩放控件
资料来源: http : //www.scottklarr.com/topic/126/how-to-create-ctrl-key-shortcuts-in-javascript/
var isCtrl = false; $(document).keyup(function (e) { if(e.which == 17) isCtrl=false; }).keydown(function (e) { if(e.which == 17) isCtrl=true; if(e.which == 83 && isCtrl == true) { //run code for CTRL+S -- ie, save! return false; } });
这适用于Ctrl + s,但您应该可以轻松修改它。