2014-01-07 52 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

相关问题