如何检测是否按下了左 Alt + 字母
How can I detect if left Alt + letter was pressed
仅当左 ALT 键与字母 s 一起按下时,我才需要执行某些操作。
当 oEvent.altKey === true
和 String.fromCharCode(oEvent.keyCode) === 'S'
时,我可以找到是否使用 keydown
事件按下了某些 Alt+s .
我还可以找到左或右 ALT 是否被按下:
oEvent.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT
或
oEvent.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT
但是我找不到将两者结合的方法。
为了做到这一点,你必须注册两个事件,keyUp
和 keyDown
,使用一个变量就可以做到这一点,
isleftAltPressed : false,
keyUp: function(e)
{
var keyCode = e.which ? e.which : e.keyCode;
if(keyCode == 18)
isleftAltPressed = false;
},
keyDown: function(e)
{
var keyCode = e.which ? e.which : e.keyCode;
if(keyCode == 18 && e.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT)
isleftAltPressed = true;
if(e.altKey && isleftAltPressed && keyCode == 83)
alert("hi");
},
仅当左 ALT 键与字母 s 一起按下时,我才需要执行某些操作。
当 oEvent.altKey === true
和 String.fromCharCode(oEvent.keyCode) === 'S'
时,我可以找到是否使用 keydown
事件按下了某些 Alt+s .
我还可以找到左或右 ALT 是否被按下:
oEvent.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT
或
oEvent.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT
但是我找不到将两者结合的方法。
为了做到这一点,你必须注册两个事件,keyUp
和 keyDown
,使用一个变量就可以做到这一点,
isleftAltPressed : false,
keyUp: function(e)
{
var keyCode = e.which ? e.which : e.keyCode;
if(keyCode == 18)
isleftAltPressed = false;
},
keyDown: function(e)
{
var keyCode = e.which ? e.which : e.keyCode;
if(keyCode == 18 && e.originalEvent.location === KeyboardEvent.DOM_KEY_LOCATION_LEFT)
isleftAltPressed = true;
if(e.altKey && isleftAltPressed && keyCode == 83)
alert("hi");
},