2010-11-02 61 views
1

好吧,所以我想寫一個簡單的顯示/隱藏內容按鈕,但我想顯示和隱藏使用兩個不同的功能的內容。現在它隱藏得很好,但不會重新顯示。我想改變一個按鈕的onclick使用JavaScript,但它不工作

<html> 
<head> 
<title>Test</title> 

<script type="text/javascript"> 
    function hidecontent(){ 
    document.getElementById("content").style.display = "none"; 
    document.getElementById("hidebutton").value = "+"; 
    document.getElementById("hidebutton").onclick = showcontent(); 
    } 

    function showcontent(){ 
    document.getElementById("content").style.display = "block"; 
    document.getElementById("hidebutton").value = "-"; 
    document.getElementById("hidebutton").onclick = hidecontent(); 
    } 
</script> 

<style type="text/css"> 
    #content{ 
    border: 1px solid #003333; 
    background-color: #000033; 
    color: #ffffff; 
    height: 500px; 
    width: 500px; 
    text-align: center; 
    display: block; 
    } 

    #hidebutton{ 
    border: 1px solid #003333; 
    background-color: #000033; 
    color: #ffffff; 
    padding: 0px 0px 0px 0px; 
    margin: 0px 0px 0px 0px; 
    } 
</style> 

</head> 

<body> 
    <form> 
    <input id="hidebutton" type="button" value="-" onclick="hidecontent()" /> 
    </form> 

    <?php 
    echo '<div id="content">Hello world!</div>'; 
    ?> 
</body> 
</html> 
+1

'hidecontent()'應該沒有尾括號,例如'document.getElementById(「hidebutton」)。onclick = hidecontent;'。這是問題:) – Sarfraz 2010-11-02 06:23:36

回答

7

做到這一點

document.getElementById("hidebutton").onclick = hidecontent; 
+0

啊,我現在明白了。謝謝^ __^ – William 2010-11-02 06:16:40

+0

其實,薩法茲呢,它呢。 O__O – William 2010-11-02 06:17:06

+0

不應該在技術上是這樣的:'document.getElementById(「hidebutton」)。onclick' – Sarfraz 2010-11-02 06:22:10

3

無需兩種功能,你也可以這樣做:

function show_hide(){ 
    var ds = document.getElementById("content"); 
    var btn = document.getElementById("hidebutton"); 

    if (ds.style.display === 'block'){ 
     ds.style.display = 'none'; 
     btn.value = '+'; 
    } 
    else { 
     ds.style.display = 'block'; 
     btn.value = '-'; 
    } 
} 

以後你可以這樣調用該函數:

var btn = document.getElementById("hidebutton"); 
btn.onclick = show_hide; 
+1

該死的,你打敗了我。無論如何,威廉,這種編碼風格比在按鈕上使用onclick屬性要好得多。與標記分開的行爲。 – putolaruan 2010-11-02 06:24:32

2

documents t.getElementById(「hidebutton」)。onclick = showcontent; // remove()

document.getElementById(「hidebutton」)。onclick = hidecontent; // remove()

相關問題