エスケープキーを押すと、子ウィンドウを閉じたいと思いますが、まず開いているオーバーレイを確認します。オーバーレイが開いていてエスケープキーが押されている場合、私はオーバーレイを閉じたいだけです。ユーザーがエスケープを再度押すと、子ウィンドウを閉じることができます。jQuery - エスケープ時、オーバーレイが開いていない場合はウィンドウを閉じます
したがって、まずオーバーレイが開いているかどうかを確認する必要があります。すべての私のオーバーレイは.simpleOverlay
のクラスとクラス.closeOverlayBtn
と閉じるボタンを持っているので、私は、そのクラスがそうのように、ウィンドウを閉じる前に、フォーカスがあるかどうかを確認する機能を有していると考えた:
if (e.keyCode == 27) { // "Esc" Key
if ($('.simpleOverlay').is(':focus')) {
$('.closeOverlayBtn').trigger('click');
}
else {
window.close();
}
return(false);
}
しかし、これはあります起きていません!! .trigger
行をalert()
に置き換えた場合、オーバーレイが閉じて開いていると警告が表示されます。
これは正しいことですか、何か完全に欠けていますか?
パーフェクト感謝!私は、私が使うことができる他の場所を読んでいます:フォーカスですが何らかの理由で、私の場合ではありません。 Chromeでテストしています。 – TheCarver
恐ろしい! JSFiddleでこれを設定する方法を知る必要はありませんでした。 = D – Jason
なぜ '.preventDefault()'を呼びますか? – nnnnnn