0

ライト ボックス ギャラリーを作成していましたが、このコードでは、 escキーdivを押したときに非表示になるはずだったライト ボックスが非表示になりません。

$(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>

これらの要素の下にスクリプトを配置しましたが、何か不足していますか?

4

4 に答える 4

1

キーコードはすべてのブラウザーでサポートされているわけではないため、単純に e.which を使用する必要があります。

$(document).keyup(function(e) {
  if(e.which==27)
  {
    $("#lightbox").hide();
  }
});
于 2012-10-23T15:52:29.637 に答える
1

keyupの代わりにkeypressイベントを使用してみてください。

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

   if(code ==27){
      $("#lightbox").hide();
   }
});
于 2012-10-23T15:39:05.033 に答える
0

Enter、Tab、矢印キー、Esc などの特定のキーは、keypress イベントでキャプチャする必要があるため、keypress イベントを使用したほうがよいでしょう。

$(document).keypress(function(e){
    var key = (e.keyCode ? e.keyCode : e.which);
    if(key ==27){
        $("#lightbox").hide();
    }
});
于 2012-10-23T15:53:25.860 に答える