2016-02-04 109 views
1

這裏製作一個div可見時是HTML:錯誤的功能

<div class="div1" id ="div1" onclick="onStepClicked()" style ="text-align:center">Step 1</div> 

這裏是腳本:

function onStepClicked() { 
     var elem = document.getElementById('div2'); 
     if (Visible = true) { 
      elem.style.visibility = 'hidden'; 
      Visible = false; 
     } 
     if (Visible = false) { 
      elem.style.visibility = 'visible'; 
      Visible = true; 
     } 
    } 

當我點擊事業部在第一時間,在div是隱藏其中是正確的。但是,當我再次單擊它時,我將不會再次看到它。這可能是我忽略的一個簡單錯誤。

回答

2
function onStepClicked() { 
     var elem = document.getElementById('div2'); 
     if (Visible === true) { 
      elem.style.visibility = 'hidden'; 
      Visible = false; 
     } else if (Visible === false) { 
      elem.style.visibility = 'visible'; 
      Visible = true; 
     } 
    } 

你正在做一個=值分配給Visible。你需要使用=====檢查平等

此外,除非你需要Visible別的地方,你可以這樣做:

function onStepClicked() { 
     var elem = document.getElementById('div2'); 
     if (elem.style.visibility === 'visible') { 
      elem.style.visibility = 'hidden'; 
     } 
     else { 
      elem.style.visibility = 'visible'; 
     } 
    } 
1
function onStepClicked() { 
    var elem = document.getElementById('div2'); 
    if (elem.style.visibility == 'visible') 
     elem.style.visibility = 'hidden'; 
    else 
     elem.style.visibility = 'visible'; 
} 

你的錯誤是設定可見等於真正在你第一次如果聲明。區別在於Visible = true vs Visible == true。第一個示例將值設置爲Visible(=是賦值運算符),第二個將值與Visible(==是比較運算符)進行比較。

對於這個小片段,你不需要額外的可見的變量,但如果你需要在你的代碼的其他部分,你可以自由地添加回。

0

我看到幾件事情: - 您正在尋找div2,而您的div有div1的ID - if語句應該是==或===不是=