jQuery键盘激活一个按钮

时间:2012-09-29 23:45:31

标签: javascript jquery html button keyboard

这是我到目前为止所得到的
http://jsfiddle.net/qEKfg/

这是两个按钮,点击激活,看起来像键盘键 我试图让它只在键盘按下相关键(CTRL和D)时激活(动画) 这将为我的网站添加书签功能的“动画按钮”效果,因为CTRL + D是为页面添加书签的热键。

但我不知道如何设置它来使用html或jQuery中的键盘键 如果有人可以提供帮助,我真的非常感激

2 个答案:

答案 0 :(得分:2)

以下内容适合您。但请注意,由于窗口失去焦点,我在计时器中添加了5秒后释放屏幕上的“按钮”,因为窗口在特定时间失去焦点会阻止键盘事件被触发。

$(document).ready(function() {
    var keys = [];
    $(window).on('keydown keyup', function(e) {
        if (e.type == "keydown") {
            if (e.keyCode == 17 || e.keyCode == 91) {
                $("a.a_demo_two:contains('CTRL')").addClass("active");
                keys[0] = e.keyCode;
            }
            else if (e.keyCode == 68) {
                $("a.a_demo_two:contains('D')").addClass("active");
                keys[1] = 68;
            };
            if ((keys[0] == 17 || e.keyCode == 91) && keys[1] == 68) {
                setTimeout(function() {
                    $('a.a_demo_two').removeClass("active");
                }, 5000);
            }
        }
        else {
            if (e.keyCode == 17 || e.keyCode == 91) {
                $("a.a_demo_two:contains('CTRL')").removeClass("active");
            }
            else if (e.keyCode == 68) {
                $("a.a_demo_two:contains('D')").removeClass("active");
            }
            keys = [];
        }
    });
});​

DEMO

答案 1 :(得分:0)

基本上,您只需将处理程序放在keydownkeyup事件上,然后触发您想要的任何内容。 像这样的东西

$('body').on('keydown', function(e) {   
   console.log(e)    
   if (e.ctrlKey) $('.a_demo_two').trigger('mousedown')
   if (e.keyCode === 100) $('.a_demo_two').trigger('mousedown')       
});

$('body').on('keyup', function(e) {
   console.log(e)    
   if (e.ctrlKey) $('.a_demo_two').trigger('mouseup')
   if (e.keyCode === 100) $('.a_demo_two').trigger('mouseup')       
});