检查“点击”事件上的 Ctrl / Shift / Alt 键

新手上路,请多包涵

我如何确定在以下代码中按下了 哪些 Ctrl / Shift / Alt 键?

 $("#my_id").click(function() {
    if (<left control key is pressed>) { alert("Left Ctrl"); }
    if (<right shift and left alt keys are pressed>) { alert("Right Shift + Left Alt"); }
});

原文由 Misha Moroshko 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 348
2 个回答

嗯,你这不会在所有浏览器中工作,只有 IE 8。微软实现了确定按下哪个(右/左)键的能力。这是一个链接 http://msdn.microsoft.com/en-us/library/ms534630(VS.85).aspx

我还发现了这篇关于浏览器中的按键、按键、按键事件的精彩文章。 http://unixpapa.com/js/key.html

 $('#someelement').bind('click', function(event){

    if(event.ctrlKey) {
      if (event.ctrlLeft) {
        console.log('ctrl-left');
      }
      else {
        console.log('ctrl-right');
      }
    }
    if(event.altKey) {
      if (event.altLeft) {
        console.log('alt-left');
      }
      else {
        console.log('alt-right');
      }
    }
    if(event.shiftKey) {
      if (event.shiftLeft) {
        console.log('shift-left');
      }
      else
      {
        console.log('shift-right');
      }
    }
  });

原文由 John Hartsock 发布,翻译遵循 CC BY-SA 2.5 许可协议

$('#someelement').bind('click', function(event){
   if(event.ctrlKey)
      console.log('ctrl');
   if(event.altKey)
      console.log('alt');
   if(event.shiftKey)
      console.log('shift');

});

我不知道是否可以在单击事件中检查左键/右键,但我认为这是不可能的。

原文由 jAndy 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题