2015-03-31 50 views
0

使用JS if語句來改變div類的按鈕(我做錯了什麼)?

function navtoggle(elementRef) { 
 
    if (document.getElementById('nav').className = 'closed') { 
 
    document.getElementById('nav').className = 'open' 
 
    } else if (document.getElementById('nav').className = 'open') { 
 
    document.getElementById('nav').className = 'closed' 
 
    }; 
 

 
}
.closed { 
 
    display: none; 
 
} 
 
.open { 
 
    display: block; 
 
} 
 
#navget { 
 
    width: 100px; 
 
    height: 100px; 
 
    box-shadow: 0px 0px 15px black; 
 
}
<html> 
 

 
<head> 
 
    <link rel="stylesheet" type="text/css" href="style.css"> 
 
    <title>HTML Library</title> 
 
</head> 
 

 
<body> 
 
    <div id="nav" class="closed"> 
 
    <ul> 
 
     <li><a href="index.html"><h1>HOME</h1></a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
    <button onclick="JavaScript: navtoggle(this);" id="navget">NAV</button> 
 
</body> 
 

 
</html>

下面是HTML:

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="style.css"> 
     <title>HTML Library</title> 
    </head> 
    <body> 
     <div id="nav" class="closed"> 
      <ul> 
       <li><a href="index.html"><h1>HOME</h1></a></li> 
      </ul> 
     </div> 
<button onclick="JavaScript: navtoggle(this);" id="navget">NAV</button> 
    </body> 
</html> 

的JS:

function navtoggle(elementRef){ 
if (document.getElementById('nav').className = 'closed') 
    {document.getElementById('nav').className = 'open'} 

else if (document.getElementById('nav').className = 'open') 
    {document.getElementById('nav').className = 'closed'}; 

} 

而CSS:

.closed { 
    display: none; 
} 

.open { 
    display: block; 
} 

#navget { 
    width: 100px; height: 100px; 
} 

我知道使用複選框會更容易,而且我知道如何做到這一點。但是,我希望它只是一個按鈕,以便我可以使它看起來更好等。 我對JS很新穎,所以請不要對愚蠢的問題過於苛刻。謝謝。

+1

錯誤的比較操作。如果條件存在,則使用=而不是==。你也不需要Javascript,只需onclick =「navtogglet(this)」是必需的 – FarazShuja 2015-03-31 12:09:51

+0

對不起,重複的代碼,當我插入代碼片段時,它就這樣做了。 – 2015-03-31 12:11:13

+0

也避免標籤內的h1標籤,其無效。 – FarazShuja 2015-03-31 12:13:42

回答

0
在條件語句

你有使用「=」,而不是比較「==」

if (document.getElementById('nav').className == 'closed') { 
    document.getElementById('nav').className = 'open' 
    } else if (document.getElementById('nav').className == 'open') { 
    document.getElementById('nav').className = 'closed' 
0

你有你的sintax幾個問題我做了你plunker here所以你可以看到所有的細節,但基本上:

function navtoggle(elementRef){ 
    if (document.getElementById('nav').className === 'closed') { 
    document.getElementById('nav').className = 'open' 
    } 
    else if (document.getElementById('nav').className === 'open'){ 
    document.getElementById('nav').className = 'closed' 
    } //You was using semicolon here and that wasn't parsing well 
} 

我不知道,如果錯過添加腳本的頭部,但也讓我知道它的工作

相關問題