1

在了解 JS 函数方面,我还是个新手。我以前使用过的所有东西,我都倾向于按原样使用,但我一直在尝试组合和修改一个函数,以使 Div 在特定按键上切换(高度和不透明度)。我有第一部分(可以让 div 显示在“ctrl + o”组合上),但不能根据当前显示状态将它与 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 回答