如果条件不起作用,Javascript缩写

时间:2014-11-06 13:04:26

标签: javascript html css

我是javaScript的新手,我无法理解if条件的简写和速记。我已经阅读了它们,我认为我理解但是当我使用简写语句时,我正在处理的简单下拉菜单失败了。

HTML code:

<ul class="nav-menu">    
<li onclick="dropDown(this)">
    <a href="#" >Birds</a>
    <ul id="menu">
        <li><a href="">Ratites</a></li>
        <li><a href="">Fowl</a></li>
        <li><a href="">Neoaves</a></li>
    </ul>
</li>
    <li onclick="dropDown(this)">
    <a href="#">Dogs</a>
    <ul class="menu1">
        <li><a href="">Big</a></li>
        <li><a href="">Red</a></li>
        <li><a href="">Noizy</a></li>
    </ul>
</li>

CSS代码:

a {
    color: #06c;
}

ul {
    padding: 0;
    margin: 0;
    background: pink;
    float: left;
}

li {
    float: left;
    display: inline;
    position: relative;
    width: 150px;
    list-style: none;
}

#menu {
    position: absolute;
    left: 0;
    top: 100%;
    background: #ccc;
    display: none;
}

.menu1 {
    position: absolute;
    left: 0;
    top: 100%;
    background: #ccc;
    display: none;
}

JavaScript简写版:

function dropDown(li) {
    var submenu = li.getElementsByTagName('ul')[0];
    submenu.style.display = submenu.style.display == "block" ? "none" : "block";    
}

JavaScript longhand版本:

function dropDown(li) {
    var submenu = li.getElementsByTagName('ul')[0];
    if( submenu.style.display == "block"){
        submenu.style.display="none";
    }
    else{
        submenu.style.display="block";
    }
}

再一次,速记有效。我在做长的陈述中做错了什么?

JSFiddle:http://jsfiddle.net/wkmd7h0r/24/

1 个答案:

答案 0 :(得分:2)

如果您打开控制台,您将看到错误:Uncaught SyntaxError: Unexpected token },这意味着您的代码中有额外的大括号。