2017-03-05 47 views
0

我試圖根據時間條件爲true來顯示一些html控件。html控件在切換時不顯示/隱藏

我的控件如下:

<span id="t"><button id="ctr">Centre Map</button></span><span id="t2"><form name="Follow"><input type="checkbox" id ="FT" name="FT" onclick = "TitanicCheckBox(this)"><span id="FTText">Follow</span></form></span> 

我的切換控制如下:

function HideControls(tof) 
{ 
    if (tof==true) // hide and remove area where controls would be 
    { 

    document.getElementById("t").style.display = "none"; 
    document.getElementById("FT").style.display = "none"; 
    document.getElementById("FTText").style.display = "none"; 
    } 
    else 
    { 

    document.getElementById("t").style.display = "all"; 
    document.getElementById("FT").style.display = "all"; 
    document.getElementById("FTText").style.display = "all"; 
    } 
} 

函數被調用和正確的「如果」輸入(HideControls條件(假);),但控件沒有被切換。我做錯了什麼?

+1

的'else'應該使用'.style.display = 「」;','未= 「所有」'。 – nnnnnn

+0

嘗試'display =「visible」;' – ochi

+0

謝謝,它完美的作品! – user3713442

回答

0

問題不是很清楚,這是你想要達到的目標嗎?

function HideControls(tof) 
 
{ 
 
    if (tof.checked==true) // hide and remove area where controls would be 
 
    { 
 

 
    document.getElementById("t").style.display = "none"; 
 
    document.getElementById("FT").style.display = "none"; 
 
    document.getElementById("FTText").style.display = "none"; 
 
    } 
 
    else 
 
    { 
 

 
    document.getElementById("t").style.display = "all"; 
 
    document.getElementById("FT").style.display = "all"; 
 
    document.getElementById("FTText").style.display = "all"; 
 
    } 
 
}
<span id="t"><button id="ctr">Centre Map</button></span><span id="t2"><form name="Follow"><input type="checkbox" id ="FT" name="FT" onclick = "HideControls(this)"><span id="FTText">Follow</span></form></span>

1

幾個指標,這將讓你極大縮短HideControls方法:在你的變量函數外

  • 緩存的DOM元素。這意味着每次調用函數時都不必使用getElementById

  • 分別使用.style.display = 'none'.style.display = ''來隱藏和顯示控件。

  • 使用三元運算符而不是if-else語句;在這種情況下,將每個變量設置爲(tof ? 'none' : '')都是非常複雜的。

var $t = document.getElementById('t') 
 
var $FT = document.getElementById("FT") 
 
var $FTText = document.getElementById("FTText") 
 

 
function HideControls (tof) { 
 
    $t.style.display = $FT.style.display = $FTText.style.display = (tof ? 'none' : '') 
 
}
<button onclick="HideControls(false)">Show Controls</button> 
 
<button onclick="HideControls(true)">Hide Controls</button> 
 
<hr> 
 

 

 
<span id="t"><button id="ctr">Centre Map</button></span><span id="t2"><form name="Follow"><input type="checkbox" id ="FT" name="FT" onclick = "TitanicCheckBox(this)"><span id="FTText">Follow</span></form> 
 
</span>