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

関数が呼び出されたときにkeypressイベントイベント時間を割り当てているようです。関数の外に移動してみてください。

$(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 に答える