我在按下逃生时尝试关闭灯箱,但弹出窗口没有关闭。
$(document).keypress(function(e){
if(e.keyCode==27 && popupStatus==1){
disablePopup();
}
});
这是完整的代码:
var popupStatus = 0;
var buttonDivID = "";
var conDivID = "";
//determine which div is clicked
function setDiv( div ) {
if( div==1){
conDivID = "#intro";
}
if( div==2) {
conDivID = "#presentation";
}
}
//loading popup with jQuery magic!
function loadPopup(){
//loads popup only if it is disabled
if(popupStatus==0){
$("#backgroundPopup").css({
"opacity": "0.7"
});
$("#backgroundPopup").fadeIn("slow");
$(conDivID).fadeIn("slow");
$(conDivID).CenterIt();
popupStatus = 1;
}
}
//disabling popup with jQuery magic!
function disablePopup(){
//disables popup only if it is enabled
if(popupStatus==1){
$("#backgroundPopup").fadeOut("slow");
$(conDivID).fadeOut("slow");
popupStatus = 0;
buttonDivID = "";
conDivID = "";
}
}
//centering popup
function centerPopup(){
//request data for centering
var windowWidth = document.documentElement.clientWidth;
var windowHeight = document.documentElement.clientHeight;
var popupHeight = $(conDivID).height();
var popupWidth = $(conDivID).width();
//centering
$(conDivID).css({
"position": "absolute",
"top": windowHeight/2-popupHeight/2,
"left": windowWidth/2-popupWidth/2
});
//only need force for IE6
$("#backgroundPopup").css({
"height": windowHeight
});
}
//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){
$("#vid2").click(function(){
//set the lightbox divs
setDiv(2);
loadPopup();
});
//CLOSING POPUP
//Click the x event!
$(".popupContactClose").click(function(){
disablePopup();
});
//Press Escape event!
$(document).keypress(function(e){
if(e.keyCode==27 && popupStatus==1){
disablePopup();
}
});
});
另一种方法是单击x按钮,正确关闭弹出窗口。为什么不关闭呢?
答案 0 :(得分:17)
这有效:
$(document).ready(function(){
$(document).bind('keydown', function(e) {
if (e.which == 27) {
alert('esc pressed');
}
});
});
答案 1 :(得分:2)
这是一个错误:转义按钮在jquery.lightbox-0.5
不起作用解决方案: http://code.google.com/p/jquery-lightbox/issues/detail?id=27#c4
我不确定这是否已由灯箱人员修复过。我做了一个 一点点的调试,发现在第339行 jquery.lightbox-0.5js,escapeKey被设置为'undefined' Mozilla浏览器的第339行。所以,我添加了以下块 第341行的代码将escapeKey var重新设置为'27':
// Fix because Escape Key wasn't being detected if (escapeKey == undefined) { escapeKey = 27; }
那应该在'//以小写形式获取密钥'的正上方 评论,你可以在文件中快速搜索。
现在适合我。
答案 2 :(得分:2)
只需使用 keyup 代替 keypress , 代替 keyCode 。 当您使用按键时,Chrome没有返回Escape的任何密钥代码,Firefox返回零。
$(document).keyup(function(e){
if(e.which == 27 && popupStatus == 1){
disablePopup();
}
});