在函数中使Div可见时出错

时间:2016-02-04 23:07:18

标签: javascript html function onclick

这是HTML:

<div class="div1" id ="div1" onclick="onStepClicked()" style ="text-align:center">Step 1</div>

这是脚本:

 function onStepClicked() {
        var elem = document.getElementById('div2');
        if (Visible = true) {
            elem.style.visibility = 'hidden';
            Visible = false;
        }
        if (Visible = false) {
            elem.style.visibility = 'visible';
            Visible = true;
        }
    }

当我第一次点击Div时,Div被隐藏,这是正确的。然而,当我再次点击它时,我再也不会被看到了。这可能是一个我忽略的简单错误。

3 个答案:

答案 0 :(得分:2)

 function onStepClicked() {
        var elem = document.getElementById('div2');
        if (Visible === true) {
            elem.style.visibility = 'hidden';
            Visible = false;
        } else if (Visible === false) {
            elem.style.visibility = 'visible';
            Visible = true;
        }
    }

您通过执行单个Visible=分配值。您需要使用=====

检查相等性

此外,除非您在其他地方需要Visible,否则您可以这样做:

 function onStepClicked() {
        var elem = document.getElementById('div2');
        if (elem.style.visibility === 'visible') {
            elem.style.visibility = 'hidden';
        }
        else {
            elem.style.visibility = 'visible';
        }
    }

答案 1 :(得分:1)

 function onStepClicked() {
    var elem = document.getElementById('div2');
    if (elem.style.visibility == 'visible')
        elem.style.visibility = 'hidden';
    else
        elem.style.visibility = 'visible';
}

您的错误是在第一个if语句中设置Visible 等于true 。差异为Visible = trueVisible == true。第一个示例将值设置为Visible(=是赋值运算符),第二个示例将值与Visible(==是比较运算符)进行比较。

对于这个小片段,您不需要额外的Visible变量,但如果您需要在代码的其他部分使用它,则可以将其重新添加回来。

答案 2 :(得分:0)

我看到了几件事: - 当你的div的id为div1时,你正在搜索div2 - if语句应为==或=== not =