Jquery esc hide方法不隐藏元素

Jquery esc hide方法不隐藏元素,jquery,dom,hide,Jquery,Dom,Hide,我正在制作一个灯箱图库,但此代码没有隐藏灯箱div,当我按下esc键时,它应该被隐藏 我的DOM元素如下所示: <div id="lightbox"> <div id="overlay"> <div id="imageholder"> <img name="lightboximage" src="images/demo/940x340.gif" height="600" width="700" align=

我正在制作一个灯箱图库,但此代码没有隐藏灯箱
div
,当我按下esc键时,它应该被隐藏

我的DOM元素如下所示:

<div id="lightbox">
    <div id="overlay">
        <div id="imageholder">
            <img name="lightboximage" src="images/demo/940x340.gif" height="600" width="700" align="left" />
            <div id="description">
                <h1><a href="url/cyberkiller.nishchal">Nishchal Gautam</a></h1>
                <p>Description about the image</p>
            </div>
        </div>
    </div>
</div>

关于图像的描述


我已将脚本放在这些元素下面,是否遗漏了一些内容?

请尝试使用keypress事件而不是keypup

$(document).on('keypress' , function(e) {
   var code = (e.keyCode ? e.keyCode : e.which);

   if(code ==27){
      $("#lightbox").hide();
   }
});

它在我的firefox中运行良好,当我按ESC键时,它会隐藏。 你在使用firefox吗?也许它在其他浏览器中不起作用。 为了兼容性,您最好将其更改为:

$(document).keyup(function(e) {
    var key = e.keyCode || e.which || e.charCode;
    if(key==27)
        $("#lightbox").hide();
}):

您应该简单地使用e.which,因为并非所有浏览器都支持keycode

$(document).keyup(function(e) {
  if(e.which==27)
  {
    $("#lightbox").hide();
  }
});

某些键,如enter键、tab键、箭头键、Esc键等。。。需要使用keypress事件捕获,以便更好地使用keypress事件

$(document).keypress(function(e){
    var key = (e.keyCode ? e.keyCode : e.which);
    if(key ==27){
        $("#lightbox").hide();
    }
});

控制台中是否有任何错误?好像您的HTML格式不正确。。额外结案分组。。这是一个打字错误吗?不,我没有在那里出错,可能是任何轻微的疏忽?html没有什么问题,它只是在这里工作
$(document).keypress(function(e){
    var key = (e.keyCode ? e.keyCode : e.which);
    if(key ==27){
        $("#lightbox").hide();
    }
});