-->

如何触发jQuery的组合键如何触发jQuery的组合键(How to trigger key co

2019-05-12 08:49发布

我已经编写了一些东西:

http://fincha.com/kunden/schmitt/

我放大用的.css(“缩放”),但我需要的按钮,以模拟CTRL +或CTRL -

此代码是不是为我工作:

e = jQuery.Event("keydown");        
e.which = 50;       
$("input").trigger(e);

请帮忙!

编辑

我其实是想zoomin和缩小(ZoomOut)整个网页,而不仅仅是一个输入字段

Answer 1:

jQuery的由上设置一个或多个特性进行归上的事件修改键event对象。 所以,你要设置event.ctrlKeytrue ,所以这应该为你工作:

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控件



Answer 2:

来源: 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,但你应该能够很容易地修改它。



文章来源: How to trigger key combo with jQuery