当按下alt + tab或windows + d时如何在jquery中触发事件?

时间:2013-12-03 05:07:23

标签: javascript jquery

我想在按下alt + tab或windows + d时触发事件。以下是我的代码,当鼠标指针离开浏览器窗口时发出警报。但即使用户按下alt + tab或Windows + D,也会发生此事件。请问有人能帮助我吗? Folowing是我的代码供您参考:

<!DOCTYPE html>
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <script>
      var timer;
      $(document).ready(function () {
        $(document).mouseleave(function () {
          //alert("Mouse is away");
          customAlert("your mouse is away");
        });
      });

      function customAlert(customText) {
        $("#popUp").html(customText);
        timer = setInterval(customAlert2, 5000);

        $("#popUp").dialog({
          dialogClass: "no-close",
          buttons: [{
                      text: "OK", click: function () {
                        $(this).dialog("close");
                        clearInterval(timer);
                      }
                    }]
        });
      }

      function customAlert2() {
        location.reload();
        $("#popUp2").dialog({
        dialogClass: "no-close",
        buttons: [{
                  text: "OK", click: function () {
                    $(this).dialog("close");
                  }
                }]
        });
      }


    </script>
  </head>
  <body>
    <h1>My first Javascript program</h1>
    <p>Hello World!</p>
    <div id="popUp" title="First alert message"></div>
    <div id="popUp2" title="Second alert message">Time is over</div>
  </body>
</html>

2 个答案:

答案 0 :(得分:2)

jwerty是一个很棒的插件,允许您为特定的键组合创建函数。

e.g:

jwerty.key('ctrl+shift+P', function () { [...] });

答案 1 :(得分:2)

注意如果您想处理他们通过操作系统注册的任何密钥(例如: Alt + Tab ),您 CAN不通过Jquery做到这一点。

您需要将事件分配给未注册的密钥,以使用Jquery激活您的事件。

你可以尝试一些像打击这样的代码来处理你想要的东西

var keys = {};

 $(document).keydown(function (e) {
  keys[e.which] = true;
 });

 $(document).keyup(function (e) {
   delete keys[e.which];
});

if( (keys[91] && keys[68]) || (keys[18] && keys[9]) ) /*windows+d OR alt+tab*/
{ /* your code */}

<小时/> 或

使用jwerty lib来完成它。示例代码:

jwerty.key('ctrl+shift+P', function () { 
   // your code
});

并支持组合:

jwerty.key('⌃+⇧+P/⌘+⇧+P', function () { 
   // your code
});

<小时/> 并且有一个简单的javaScript库Mousetrap用于处理键盘快捷键。看看这个例子:

Mousetrap.bind('h', function() {
    // your code
});

OR

它还支持组合:

Mousetrap.bind(['ctrl+h', 'ctrl+l'], function(e) {
    // your code
}

我希望它对你有用。