2014-01-07 79 views
1

當我有這個擾流板代碼:關閉擾流單擊另一個

<style type="text/css"> 
body,input 
    { 
    font-family:"Trebuchet ms",arial;font-size:0.9em; 
    color:#333; 
    } 
.spoiler 
    { 
    border:1px solid #ddd; 
    padding:3px; 
    } 
.spoiler .inner 
    { 
    border:1px solid #eee; 
    padding:3px;margin:3px; 
    } 
    </style> 
    <script type="text/javascript"> 
function showSpoiler(obj) 
    { 
    var inner = obj.parentNode.getElementsByTagName("div")[0]; 
    if (inner.style.display == "none") 
     inner.style.display = ""; 
    else 
     inner.style.display = "none"; 
    } 
    </script> 

<div class="spoiler"> 
    <img onclick="showSpoiler(this);" src="http://i.imgur.com/AZrcfcR.png" /> 
    <div class="inner" style="display:none;"> 
    This is a spoiler! 
    </div> 
</div> 

我真的不知道該怎麼解釋,但有什麼辦法,使擾流板接近時,它被打開了一個擾流器(點擊) ?

回答

0

嘗試在此之前隱藏所有劇透。

試試這個:

function showSpoiler(obj) 
{ 
    var elements = document.getElementsByClassName('spoiler'); 

    for(i in elements){ 
    elements[i].style.display = "none"; 
    } 

    var inner = obj.parentNode.getElementsByTagName("div")[0]; 
    inner.style.display = ""; 
} 
+0

不工作。 http://thegelu.com/spoilers.html – Gelu

+0

@ user3142039:使用一個調試器,比如Firebug,因爲當你展開/摺疊這些div時,這個錯誤'ele.inner is undefined'正在出現。 – incutonez

+0

我試圖用編輯的代碼替換舊代碼。它實際上並沒有打開任何擾流板,但它使它消失。 – Gelu

相關問題