2012-10-23 53 views
0

我正在製作一個燈箱畫廊,但是這段代碼並沒有隱藏lightbox div,當我按下esc時,應該隱藏它。jquery esc隱藏方法不隱藏元素

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

我有我的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> 

我已經把這些元素下面的腳本,我失去的東西嗎?

+1

您是否在控制檯中發現任何錯誤? – alimac83

+1

Loos像你有一個格式不正確的HTML ..額外收盤的div ..這是一個錯字? –

+0

不,我沒有在那裏得到錯誤,可能是任何輕微的粗心? –

回答

1

嘗試使用按鍵事件,而不是KEYUP ..

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

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

正常工作在我的Firefox,當我按下ESC,它隱藏。 你使用的是Firefox嗎?也許它不適用於其他瀏覽器。 你最好將其更改爲這對兼容性:

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

您只需要使用e.which,如鍵碼不支持所有瀏覽器

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

某些鍵輸入一樣,製表,箭頭鍵,Esc等...需要使用按鍵事件捕捉,所以您最好使用按鍵事件。

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