将“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");
}
}
});
答
因此,请检查事件Data中的alt键。如果按下,这将是真实的。
$(document).keypress(function(e){
if (!e.altKey) return;
/* rest of code */
});
阿齐姆似乎在演示突破:http://motorcyclecredit.com/test.htm – Blnukem
我创建了这个工作小提琴:https://jsfiddle.net/azim101/dkk6twsc/。您需要在'keypress'事件中添加'e.preventDefault()'。 @ user1703803 – Azim
好吧我弄清楚它在Firefox中工作的问题,但不是在Chrome中我使用的是Chrome – Blnukem