2014-02-06 1 views
0

두 개의 div을 클릭하면 표시되거나 사라지게 만드는 것이 좋습니다. CSS 표시 스타일이 none으로 설정됩니다. 도움을 주시면 감사하겠습니다.전화 할 때 토글 기능이 작동하지 않습니다.

<div id="mainOval"> 
     <form id="btns"> 
      <input type="button" value="Timer" id="timerBtn" onclick="displayCont('Timer')"/> 
      <input type="button" value="Countdown" id="ctDownBtn" onclick="displayCont('Countdown')"/> 
     </form> 
</div> 
<div id="Timer"> 
</div> 
<div id="Countdown"> 
</div> 



<script type="text/javascript"> 
    function displayCont(inp) 
     { 
      var ele = document.getElementById(inp); 
      var shown = ele.style.display; 
      if (shown == 'none') 
       { 
        ele.style.display = 'block'; 
       } 
      else if (shown == 'block') 
       { 
        ele.style.display = 'none'; 
       } 
     } 
</script> 
+2

요소의 속성을 변경하지 않고 '표시된'값만 설정하면됩니다. 일어날 일을 위해 디스플레이 CSS 값을 실제로 변경해야합니다. – thatidiotguy

+0

코드에'if()'문에서 등호 사이에 공백이 있습니까? –

답변

1

올바른 코드는 : 당신은 그냥 자바 스크립트 변수를 할당하지, 요소의 스타일을 설정 하다며이

if (shown == 'none') { 
    ele.style.display = 'block'; 
} 
else if (shown == 'block'){ 
    ele.style.display = 'none'; 
} 

. 그리고 평등은 이 아니라 ==입니다.

+0

그래서 언급했지만 여전히 작동하지 않는 두 가지 픽스를 만들었습니다. – Reece

+0

요소에'style' 속성이 없습니다. 'ele.style.display'는 CSS에서 계산 된 스타일을 얻지 못하고'style = "XXX"'속성에있는 것을 가져옵니다. – Barmar

+0

그레이트 ... 드디어 작품 :) – Reece

관련 문제