将“Alt”键添加到现有的击键功能

问题描述:

我想将“Alt”键击添加到现有的击键功能。我使用这个函数来导航页面,但是我想要做的是将“Alt”击键添加到所有现有的函数中。将“Alt”键添加到现有的击键功能

因此,我不希望让'a'这个单独的按键工作,而只希望它能与'Alt + A'的按键一起工作,任何帮助或想法都会受到欢迎。

$(document).ready(function() 
{ 
    // hides all DIVs with the CLASS container 
    // and displays the one with the ID 'home' only 
    $(".container").css("display","none"); 
    $("#home").css("display","block"); 

    // makes the navigation work after all containers have bee hidden 
    showViaLink($("ul#navigation li a")); 

    // listens for any navigation keypress activity 
    $(document).keypress(function(e) 
    { 
     switch(e.which) 
     { 
      // user presses the "a" 
      case 97: showViaKeypress("#home"); 
         break; 

      // user presses the "s" key 
      case 115: showViaKeypress("#about"); 
         break; 

      // user presses the "d" key 
      case 100: showViaKeypress("#contact"); 
         break; 

      // user presses the "f" key 
      case 102: showViaKeypress("#awards"); 
         break; 

      // user presses the "g" key 
      case 103: showViaKeypress("#links"); 
     } 
    }); 
}); 

// shows a given element and hides all others 
function showViaKeypress(element_id) 
{ 
    $(".container").css("display","none"); 
    // if multiple keys are pressed rapidly this will hide all but the last pressed key's div 
    $(".container").hide(1); 
    $(element_id).slideDown("slow"); 
} 

// shows proper DIV depending on link 'href' 
function showViaLink(array) 
{ 
    array.each(function(i) 
    { 
     $(this).click(function() 
     { 
      var target = $(this).attr("href"); 
      $(".container").css("display","none"); 
      $(target).slideDown("slow"); 
     }); 
    }); 
} 

你可以像在你keypress事件像下面使用altKey以下。

$(document).keypress(function(e) { 
    if(e.altKey) { 
     switch(e.which) 
     { 
     // user presses the "a" 
     case 97: showViaKeypress("#home"); 
        break; 

     // user presses the "s" key 
     case 115: showViaKeypress("#about"); 
        break; 

     // user presses the "d" key 
     case 100: showViaKeypress("#contact"); 
        break; 

     // user presses the "f" key 
     case 102: showViaKeypress("#awards"); 
        break; 

     // user presses the "g" key 
     case 103: showViaKeypress("#links"); 
     } 
    } 
}); 
+0

阿齐姆似乎在演示突破:http://motorcyclecredit.com/test.htm – Blnukem

+0

我创建了这个工作小提琴:https://jsfiddle.net/azim101/dkk6twsc/。您需要在'keypress'事件中添加'e.preventDefault()'。 @ user1703803 – Azim

+0

好吧我弄清楚它在Firefox中工作的问题,但不是在Chrome中我使用的是Chrome – Blnukem

因此,请检查事件Data中的alt键。如果按下,这将是真实的。

$(document).keypress(function(e){ 
    if (!e.altKey) return; 
    /* rest of code */ 
});