1

JS 関数に頭を悩ませることになると、私はかなり新しいです。以前に使用したものはすべて、そのまま使用する傾向がありましたが、関数を組み合わせて変更して、特定のキープレスで Div をトグル (高さと不透明度) に切り替えようとしました。私は最初の部分を持っています(「ctrl + o」コンボで表示するdivを取得できます)が、現在の表示ステータスに基づいて、ifステートメントと組み合わせて表示または非表示にすることはできません。

現在動作中の「表示のみ」の JS:

$(document).keydown(function (e) {
    if (e.keyCode == 79 && e.ctrlKey) {
        document.getElementById('thediv').style.height = 'auto';
        document.getElementById('thediv').style.opacity = '1';
        return false;
    }
});

JS の「オン/オフ切り替え」が機能しない (私はこれを至る所で変更しようとしました。これは、私が達成しようとしていることのアイデアを提供するためのものです):

$(document).keydown(function (e) {
    if (e.keyCode == 76 && e.ctrlKey) {

        function toggler('thediv') {
            var myDiv = document.getElementById('thediv').style.height;
            if (myDiv == "auto") {
                document.getElementById('thediv').style.height = "0px";
                document.getElementById('thediv').style.opacity = "0";

            } else {
                document.getElementById('thediv').style.height = "auto";
                document.getElementById('thediv').style.height = "1";
            }
        }

    }
});

どんな助けでも本当に感謝します!

4

1 に答える 1

1

要素を表示および非表示にしたいのに、なぜその高さと可視性を設定するのでしょうか? toggleで表示/非表示を切り替えるだけです。

$(document).keydown(function (e) {
    if (e.keyCode == 76 && e.ctrlKey) {
         $("#thediv").toggle();
    }
});

あなたのコードを見る

$(document).keydown(function (e) {
    if (e.keyCode == 76 && e.ctrlKey) {

        //This funciton is never called, you define it, do not call it!
        function toggler('thediv') { //<-- Error Here, you have a string as an argument?
            var myDiv = document.getElementById('thediv').style.height;
            if (myDiv == "auto") {
                document.getElementById('thediv').style.height = "0px";  //<--Bad practice using document.getElementById('thediv') over and over. Store it into a variable and reference it.
                document.getElementById('thediv').style.opacity = "0";

            } else {
                document.getElementById('thediv').style.height = "auto";
                document.getElementById('thediv').style.height = "1";
            }
        }

    }
});
于 2012-06-16T12:57:27.113 に答える