按下转义键时,我想关闭一个子窗口,但首先要检查是否有打开的叠加层。如果打开了叠加层并按下了退出键,我只想关闭叠加层。如果用户再次按下escape,我希望它关闭子窗口。
所以,我首先要检查叠加层是否打开。我的所有叠加层都有一个.simpleOverlay
类和一个类.closeOverlayBtn
的关闭按钮,所以我想在关闭窗口之前有一个检查该类是否具有焦点的函数,如下所示:
if (e.keyCode == 27) { // "Esc" Key
if ( $('.simpleOverlay').is(':focus') ) {
$('.closeOverlayBtn').trigger('click');
}
else {
window.close();
}
return(false);
}
但这不会发生!!如果我用.trigger
替换alert()
行,当叠加层关闭并打开时,我会收到提醒,不是很好!
这是解决这个问题的正确方法,还是我完全错过了什么?
答案 0 :(得分:3)
试试这个:
if (e.keyCode == 27) { // "Esc" Key
if ( $('.simpleOverlay').is(':visible') ) {
$('.closeOverlayBtn').click();
}
else {
window.close();
}
return(false);
}
答案 1 :(得分:0)
if (e.key === "Escape") {
if ($('.simpleOverlay').is(':visible')) {
$('.closeOverlayBtn').click();
}
else {
window.close();
}
return false;
}