2010-10-08 68 views

回答

8

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作爲+-密鑰。也許你是,而你正在使用不同的鍵盤佈局,但根據this demo50是觸擊的JavaScript關鍵代碼 - 因此這也可能是您問題的一部分。


來源:comments on a jQuery API page


編輯:

這一切不談,我不認爲你可以實際上改變使用JavaScript,即使你「送」的鍵盤命令做瀏覽器的縮放級別所以。

Access browser's page zoom controls with javascript

+0

感謝您的回覆,您沒錯,沒有辦法面對這樣的熱鍵 – 2010-10-11 20:02:37

1

來源: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,但你應該能夠很容易地修改它。

+1

這不是我不喜歡的。我需要通過點擊鏈接來模擬CTRL + – 2010-10-08 18:53:23

+0

哦!對不起,我誤解了這個問題! – Stephen 2010-10-08 18:54:29

+0

我意識到這不是一個很好的答案,但我需要這個確切的解決方案來解決我自己的問題,所以謝謝! – 2011-06-02 07:01:47