2011-09-06 59 views
1

有人可能会将我的代码与键盘键集成在一起,从而尽可能减少代码(我的网站足够重要!)。 我已经尝试了一些插件,并搜索了很多,但我的小经验并没有帮助我!具有导航菜单的键盘快捷键

$(function() { 
$('ul.nav a').each(function(i, elem) { 
    $(elem).bind('click', function(event) { 
     event.preventDefault(); 
     var offset = i * 38; 
     $('ul.nav').stop().animate({backgroundPosition: '0 ' + offset + 'px'}, 2000,'easeOutQuart'); 

     var $anchor = $(this); 
     $('html, body').stop().animate({ 
      scrollTop: $($anchor.attr('href')).offset().top 
     }, 2000,'easeOutQuart'); 
      $('ul.nav a').css({'cursor': 'pointer', 'color': '#643D21'}); 
      $anchor.css({'cursor': 'default', 'color': '#995D32'}); 
     event.preventDefault(); 
    }); 
}); 
}); 

HTML代码

<ul class="nav"> 
    <li><a href="#what">what</a></li> 
    <li><a href="#who">who</a></li> 
    <li><a href="#portfolio">portfolio</a></li> 
    <li><a href="#contact">contact</a></li> 
</ul> 

赞赏,

回答

0

如果你只是想在 '1' 被映射到 '#what' 的新闻,我会做这样的事情:

$("document").keypress(function(event) { 
    if (event.which == XX) { 
    location.href="#what"; 
    } 

另一种方法是给你的链接一个id = “”,并使用

$('#<ID OF ELEMENT>').click(); 

代替

location.href="#what"; 

这里XX是你的关键的按键值。对于'1'它是50.您可以使用this site找出哪个键在底部的示例中具有什么值。将光标置于输入字段并按下一个键。在输出中查找“哪个”。

另外请注意,这适用于页面上任何地方的按键。如果您想限制鼠标移动到某个元素,请将$('document')修改为按键事件应该激活的元素。