0

使用javascript(jquery好的),我怎么能在shift+option+command+左键单击一个对象时触发一个事件?

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

似乎这样的东西应该适用于记录键(但它根本不起作用 ^^ )而且,我如何跟踪点击?

谢谢!

4

1 回答 1

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();
    }
});
于 2012-08-13T16:47:17.730 回答