2013-01-13 55 views
2

我只想要一個簡單的切換JS,所以當你在出現有關文本的導航點擊關於,但它現在的工作OO觸發JavaScript的不工作

JS部分:

<script language="JavaScript" type="text/javascript"> 
function toggle() { 
var about = document.getElementById('about') 
if(about.style.display = "none") 
{ 
about.style.display = "block"; 
} 

else 
{ 
about.style.display = "none"; 
} 
} 
</script> 

HTML:

<header> 
... 
    <nav><ul> 
     <li><a href="index.html" id="active">Home</a></li> 
     <li><a href="javascript:toggle()" onClick="toggle()">About me</a></li> 
     ...more <li>s... 
    </ul></nav> 
</header> 
<br/> 

<div id="about"> 
aboutme 
</div> 

CSS:

#about { 
    display: none; 
    } 

我做錯了什麼?有誰能夠幫助我?

+0

另外,不要在鏈接的'href'中放入'javascript:toggle()'。 –

+0

是的,沒關係。但是,如果您只將該元素用於JavaScript,則應該使用按鈕並將其作爲鏈接進行設置。 –

回答

5

在if語句,你必須have two equal sign

function toggle() { 
    var about = document.getElementById('about'); 
    if(about.style.display == "none") 
    { 
     about.style.display = "block"; 
    } 
    else 
    { 
     about.style.display = "none"; 
    } 
} 

注意

= you can just assign value to variable 
== must be used to compare variables values 
=== must be used to compare variables in every aspect (In type too) 
+0

笨我 - .-謝謝! :) – mrgerbik2013

2

修復==問題,然後,而不是躲在你的 「約」 與CSS規則元素把樣式直接在元素上:

<div id=about style='display: none'>About Me</div> 

如果不這樣做,JavaScript代碼將不會在樣式對象上看到「顯示」屬性。 (樣式對象只反映與元素直接關聯的樣式,而不是CSS樣式表控制的樣式)。