我是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/
答案 0 :(得分:2)
如果您打开控制台,您将看到错误:Uncaught SyntaxError: Unexpected token }
,这意味着您的代码中有额外的大括号。