2012-08-13 73 views
0

使用javascript(jquery好嗎),我怎麼能在shift +選項+命令上觸發事件+左鍵單擊對象?事件on shift +選項+命令+左鍵點擊

$(document).on('keypress', function(e) { 
     if(e.keyCode == 224 && e.keyCode == 16 && e.keyCode == 18){ 
       console.log('keys pressed'); 
     } 
}); 

好像這樣的事情應該用於記錄鍵(但它不是在所有^^)工作,也,我該如何追蹤點擊?

謝謝!

+0

如果'keyCode'是'224',它不能是'16'還是'18'。檢查事件對象'e',查找與您正在查找的修飾鍵有關的屬性。 – 2012-08-13 16:05:44

+0

你在Mac嗎? – 2012-08-13 16:06:37

+0

@OscarJara是的,我在mac上 – 1252748 2012-08-13 16:07:02

回答

1

試試這個:

現場演示(適用於Mac OS)http://jsfiddle.net/NDuDZ/2/

代碼:

//Combination: Shift+Option+Command+LeftClick 

//Shift Firefox, Safari, Chrome, Opera keyCode: 16 
//Option Firefox, Safari, Chrome, Opera keyCode: 18 
//Command Firefox keyCode: 224 
//Command Chrome, Safari keyCode: 91 
//Command Opera keyCode: 17 

var isOption = false; 
var isCommand = false; 
var isLeftClick = false; 

$(document).on('keyup', function(e){ 
    if(e.which == 91 || e.which == 224 || e.which == 17) isCommand = false; 
    if(e.which == 18) isOption = false; 
}); 

$(document).on('click', function(e){ 
    isLeftClick = true; 
}); 

$(document).on('keyup', function(e){ 
    if(e.which == 91 || e.which == 224 || e.which == 17) isCommand = true; 
    if(e.which == 18) isOption = true; 
    if(e.which == 16 && isOption && isCommand && isLeftClick) { 
     alert('Shift+Option+Command+LeftClick invoked!'); 
     e.preventDefault(); 
    } 
}); 
+0

它工作得很好。謝謝。我注意到,點擊一次後,每次您執行'ctl + opt + cmd'後都會觸發警報。當鑰匙被釋放時,甚至發生火災。無論如何,點擊鼠標就可以觸發它。這是完全輝煌的;非常感謝! – 1252748 2012-08-13 20:42:50

+0

@thomas是的,我注意到,我發佈我的答案後,我試圖做一個改進的版本,但沒有成功(我也在Windows上),這是我現在可以做的最好的。你可以玩這個代碼,也許做更好的事情,因爲一切都完成了我認爲:-) – 2012-08-13 20:49:51

+0

gotcha。我會修補。感謝讓我去! :) – 1252748 2012-08-13 20:58:33

相關問題