简单图像隐藏 - “未捕获的TypeError:无法设置未定义的属性'显示'”

时间:2017-09-22 14:08:48

标签: javascript css display

这看起来真的很傻,但我已经阅读了几十篇类似的论坛帖子,我无法弄清楚我做错了什么。

我正在设计一个带有菜单按钮的网站,其图标在打开时会变为“X”。它会在每次点击时切换。 javascript函数运行但返回“Uncaught TypeError:无法设置属性'显示'未定义”当它到达将菜单按钮的style.display更改为“none”的行时。

任何想法都将受到高度赞赏。

HTML:

<img id="menuIconImage" class="menuIcon" src="resources/menu.png" onclick="menuToggle()">
<img id="menuIconImageClose" class="menuIcon" src="resources/close.png" onclick="menuToggle()">

CSS:

.menuIcon {

    position: fixed;
    left: 33px;
    top: 178px;
    width: 35px;
    height: 35px;
    cursor: pointer;
}

#menuIconImageClose {

    //the "close" image/button is hidden by default.
    display: none;
}

使用Javascript:

var menuState = 0;

function menuToggle() {
    "use strict";

    if (menuState === 0) {

        document.getElementById("menuIconImage").stlye.display = "none";
        document.getElementById("menuIconImageClose").style.display = "block";
        menuState = 1;

    } else if (menuState === 1) {

        document.getElementById("menuIconImageClose").style.display = "none";
        document.getElementById("menuIconImage").style.display = "block";
        menuState = 0;      
    }
}   

1 个答案:

答案 0 :(得分:0)

有一个拼写错误的单词&#39; stlye&#39;这应该是&#39; style&#39;在这一行:

document.getElementById("menuIconImage").stlye.display = "none";

应该是

document.getElementById("menuIconImage").style.display = "none";

我确定问题的分析从错误文本开始,表明问题不在于找到元素(即document.getElementById("menuIconImage")部分工作)。如果找不到该元素,我们会收到文字Uncaught TypeError: Cannot read property 'style' of null的错误消息。这缩小了问题的范围。