1

[Ctrl] + [Z]を使用して切り替えることができるサイドメニューがあるこのプロジェクトがあります。次に[Ctrl] + [Z]パターンを押したときに非表示にしたい。私のJavaScriptの平凡な知識は、Googleを使用してそれを表現することを妨げているため、最終的に何も見つけられなかったので、ここに来ました. JavaScript の量があれば、これは技術的には機能するはずですが、論理的には機能しないことがわかっています。何か案は?これが私のコードです:

var letter = {
    z: 90
    ...

};

$(document).ready(function() {

    $("body").keydown(function(event) {

            // toggles element the first time
        if(event.ctrlKey && event.which === letter.z) {
            $("[data-location='top']").slideDown("fast");
            $("[data-location='bottom']").slideDown("fast");
        }

            // hides element the second time
        if(event.ctrlKey && event.which === letter.z) {
            $("[data-location='top']").slideUp("fast");
            $("[data-location='bottom']").slideUp("fast");
        }

    });

});

どんな助けでも大歓迎です!:-)

4

3 に答える 3

3

.slideToggle() 関数は、探しているものです。

var letter = {
    z: 90
    ...

};

    $(document).ready(function() {

        $("body").keydown(function(event) {

            if(event.ctrlKey && event.which === letter.z) {
                $("[data-location='top']").slideToggle("fast");
                $("[data-location='bottom']").slideToggle("fast");
            }

        });

    });
于 2012-12-08T23:12:52.793 に答える
3

JavaScript:

var letter = {
    z: 90

};

$(document).ready(function() {
var visible = false;
    $("body").keydown(function(event) {

            // toggles element the first time
        if(!visible && event.ctrlKey && event.which === letter.z) {
            visible = true;
            $("[data-location='top']").slideDown("fast");
            $("[data-location='bottom']").slideDown("fast");
        } else if(visible && event.ctrlKey && event.which === letter.z) {
            visible = false;
            $("[data-location='top']").slideUp("fast");
            $("[data-location='bottom']").slideUp("fast");
        }


    });

});​

HTML:

<div id="top" class="hidden" data-location="top"></div>
<div id="bottom" class="hidden" data-location="bottom"></div>​

CSS:

#top {height:100px;width:500px;background-color:red;}
#bottom {height:100px;width:500px;background-color:blue;}
.hidden {display:none;}

フィドル

于 2012-12-08T23:16:01.407 に答える
1

keydown に 1 回バインドするだけで、そこにロジックを投げることができます。したがって、コードは次のようになります。

var letter = {
    z: 90
    ...

};

$(document).ready(function() {

    $("body").keydown(function(event) {

            // toggles element the first time
        if(event.ctrlKey && event.which === letter.z) {
            $("[data-location='top']").toggle("fast");
            $("[data-location='bottom']").toggle("fast");
        }

    });

});
于 2012-12-08T23:13:55.990 に答える