2014-11-06 83 views
0

我是javaScript的新手,我很難理解if條件的簡寫和速記。我已閱讀了他們,我想我明白,但不知何故,當我使用longhand語句時,我正在處理的簡單下拉菜單失敗。Javascript longhand如果條件不起作用

HTML代碼:

<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的手寫版:

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/

+4

看起來你最後只有一個'}'? http://jsfiddle.net/wkmd7h0r/25/投票結束爲**一個簡單的印刷錯誤** – xec 2014-11-06 13:08:12

回答

2

如果你打開控制檯,你會看到錯誤:Uncaught SyntaxError: Unexpected token },這意味着,你必須在你的代碼中加入額外的大括號。