2012-11-26 5 views
0

저는 약간의 javascript로 속이고 있습니다. 새로운 것이므로 아마도 이것은 간단한 해결책 일 것입니다. 기본적으로 내가 원하는 것은 한 번에 하나의 div 만 볼 수 있기 때문에 사용자가 하나의 링크를 클릭하여 div을 노출하면 노출 된 현재 div이 접히고 클릭 한 새로운 아이콘이 나타납니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 크게 감사 할 것입니다. 나는 코드 아래에 포함했다 :javascript를 사용하여 한 번에 div 하나만 표시

<html> 
    <head> 

     <title> test</title> 
     <LINK href="blah.css" rel="stylesheet" type="text/css"> 
     <script language="javascript" type="text/javascript"> 
     function toggle2(showHideDiv, switchTextDiv) { 
    var ele = document.getElementById(showHideDiv); 
    var text = document.getElementById(switchTextDiv); 
    if(ele.style.display == "block") { 
      ele.style.display = "none"; 
     text.innerHTML = "restore"; 
    } 
    else { 
     ele.style.display = "block"; 
     text.innerHTML = "collapse"; 
    } 
} 
    function toggle22(showHideDiv2, switchTextDiv2) { 
    var ele = document.getElementById(showHideDiv2); 
    var text = document.getElementById(switchTextDiv2); 
    if(ele.style.display == "block") { 
      ele.style.display = "none"; 
     text.innerHTML = "restore"; 
    } 
    else { 
     ele.style.display = "block"; 
     text.innerHTML = "collapse"; 
    } 
} 


     </script> 
    </head> 
    <body> 
     <div id="mainContent">  
<div id="headerDiv"> 
    <div id="titleText">Change Password - Click here ==></div><a id="myHeader" href="javascript:toggle2('myContent','myHeader');" >restore</a> 
</div> 

<div style="clear:both;"></div> 

<div id="contentDiv"> 
    <div id="myContent" style="display: none;">This is the content that is dynamically being collapsed.</div> 

<!--DIV2 --> 

<div id="headerDiv2"> 
    <div id="titleText2">Change Username - Click here ==></div><a id="myHeader2" href="javascript:toggle22('myContent2','myHeader2');" >restore</a> 
</div> 

<div style="clear:both;"></div> 

<div id="contentDiv2"> 
    <div id="myContent2" style="display: none;">This is the content that is dynamically being collapsed.</div> 




</div> 
     </div> 
    </body> 
</html> 

CSS의 :

#headerDiv, #contentDiv { 
float: left; 
width: 510px; 
} 
#titleText { 
float: left; 
font-size: 1.1em; 
font-weight: bold; 
margin: 5px; 
} 
#myHeader { 
font-size: 1.1em; 
font-weight: bold; 
margin: 5px; 
} 
#headerDiv { 
background-color: #0037DB; 
color: #9EB6FF; 
} 
#contentDiv { 
background-color: #FFE694; 
} 
#myContent { 
margin: 5px 10px; 
} 
#headerDiv a { 
color: gold; 
float: right; 
margin: 10px 10px 5px 5px; 
} 
#headerDiv a:hover { 
color: #FFFFFF; 
} 




#headerDiv2, #contentDiv2 { 
float: left; 
width: 510px; 
} 
#titleText2 { 
float: left; 
font-size: 1.1em; 
font-weight: bold; 
margin: 5px; 
} 
#myHeader2 { 
font-size: 1.1em; 
font-weight: bold; 
margin: 5px; 
} 
#headerDiv2 { 
background-color: #0037DB; 
color: #9EB6FF; 
} 
#contentDiv2 { 
background-color: #FFE694; 
} 
#myContent2 { 
margin: 5px 10px; 
} 
#headerDiv2 a { 
color: gold; 
float: right; 
margin: 10px 10px 5px 5px; 
} 
#headerDiv2 a:hover { 
color: #FFFFFF; 
} 

답변

0

style.display이 명시 적 요소에 설정되어있어 스타일을 반영합니다. HTML에 style="display:block"으로 지정하지 않으면 style.display의 초기 값은 CSS 캐스케이드에 적용된 해당 속성의 기본값이 실제로 block이더라도 비어있게됩니다.

관련 문제