1

好的,所以我在上面有一个菜单。

jQuery(document).ready(function()
{
jQuery(".clickMeToOpenMenu").toggle(function()
{ 
jQuery('#menu').stop().animate({'height':'500px'},500)
},function()
{
jQuery('#menu').stop().animate({'height':'0px'},500)
});

所以这工作得很好,菜单向下滑动然后我点击它。

现在我的问题是我希望只需按一个键 ( CTRL) 即可打开菜单。

jQuery('body, html').live('keypress', openMenu)
});
function openMenu(e)
{
if(e.keyCode == '17') // KEY 17 = CTRL
{
e.preventDefault()
jQuery('.clickMeToOpenMenu').trigger('click');
}
}

将“ jQuery('.clickMeToOpenMenu').trigger('click');”放在控制台中可以正常工作并打开菜单,但是当我按下时CTRL什么也没发生。

4

2 回答 2

0

您需要使用keydown事件来表达 ctrl 键事件

jQuery('body, html').on('keydown', openMenu)

function openMenu(e) {
  console.log(e.keyCode)
  if (e.keyCode == '17') // KEY 17 = CTRL
  {
    e.preventDefault()
    jQuery('.clickMeToOpenMenu').trigger('click');
  }
}

现场示例(按下 ctrl 键时的警报框):http: //jsfiddle.net/YbJ2q/29/show/

来源http://jsfiddle.net/YbJ2q/29/

于 2013-01-13T17:07:03.647 回答
-1

您不能CTRL单独使用 key in keypress,因为它是修饰键。

试试keydown吧。

于 2013-01-13T17:07:51.963 回答