0
function loadPopup(type) {
    if (type == "login") {
        $("#login").show();
        $("#dark").show();
        $("body").keypress(function (e) {
            var key = e.keyCode ? e.keyCode : e.which;
            if (key == "27") {
                $("#login").hide();
                $("#dark").hide();
            }
        });
    }
}

这会弹出一个具有 id login 和 dark 的窗口。当按下 Esc 时,它将自动关闭。两个元素的样式:

#dark {
    display: none;
    position: absolute;
    top: 0 % ;
    left: 0 % ;
    width: 100 % ;
    height: 100 % ;
    background-color: #aaa;
    z-index: 1001; 
    -moz-opacity: 0.8;
    opacity: .80;
    filter: alpha(opacity = 80);

}
#login {
    display: none;
    background: white;
    color: black;
    width: 500px;
    height: 500px;
    position: absolute;
    top: 50 % ;
    left: 50 % ;
    margin-left: -250px;
    margin-top: -250px;
    z-index: 1002;
}

和 HTML:

<head>
<title>some title</title>
    <link rel="stylesheet" href="style/css.php?file=index" type="text/css"/>

    <script src="script/JQuery.js" type="text/javascript"></script>
    <script src="script/js.php?file=index" type="text/javascript"></script>

</head>
<body>
        <div id="dark"></div>
        <div id="login"></div>

这里还有一些元素。

这在 IE 9、Mozilla Firefox 中有效,但在 Chrome 21 中无效。错误在哪里?

4

1 回答 1

0

您似乎正在分配调用函数的按键事件事件时间..尝试将其移到函数之外..

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

function loadPopup(type) {
    if (type == "login") {
        $("#login").show();
        $("#dark").show();
    }
}
于 2012-10-24T14:50:29.200 回答