2014-02-12 2 views
0

Ruby on Rails 3. div를 표시하거나 숨기려면 버튼을 얻으려고합니다.렌더링의 div 표시/숨기기 자바 스크립트

이것은 오류를 반환하지 않지만 아무 일도 발생하지 않습니다.

<input type=button value="Show Archived Postings" onclick="showHide('oldNews');"> 

<div id="oldNews"> 
<%= render 'archive_news' %> 
</div> 

<script language="javascript" type="text/javascript"> 
function showHide(elementId) { 
    if (document.getElementById) { 
     var element = document.getElementById(elementId); 
     if (element.style.visibility == 'visible') { 
      element.style.visibility = 'hidden'; 
     } else if (element.style.visibility == 'hidden') { 
      element.style.visibility = 'visible'; 
     } 
    } 
} 
</script> 

항상 'archive_news'를 렌더링합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 고마워요

+0

경고 또는 console.log를 입력하고 디버그하십시오. –

+0

visibility 대신 try .display = "none" –

+0

@ aw04 브라우저에서 getElementById를 지원하는지 확인하는 테스트입니다. 수정 : ... [IE 5.5보다] (https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById#Browser_Compatibility)를 지원하지 않는 한 필요하지 않습니다. 불쌍한. – acbabis

답변

1

이 코드는 요구 사항에 사용할 수 있습니다. 버튼을 클릭 할 때 style 속성을 숨기거나 표시 할 수 있습니다.

//this would hide when body is loaded 
var element = document.getElementById('oldNews'); 
if(element != null){ 
    element.style.display = 'none'; 
} 

//this would hide when you click on input button 
function showHide(elementId) { 
    var element = document.getElementById(elementId); 
    if (element != null) { 
     if(element.style.display != 'none'){ 
      element.style.display = 'none'; 
     }else{ 
      element.style.display = 'block'; 
     } 
    } 
} 
+0

처음로드 할 때 div .display = 'none'을 어떻게 만들 수 있습니까? – DDDD

+0

페이지를로드 할 때 div 표시를 none으로 설정 하시겠습니까? –

+0

예, 보관 된 뉴스 게시를 보이지 않게 시작한 다음 클릭하여 표시하고 숨길 수 있습니다. – DDDD

관련 문제