2011-11-10 4 views
2

여기에 게시하는 데 도움이 될 것이라고 생각하여이 문제에 관해 머리를 터는 데 어려움을 겪고 있습니다. 그래서 여기에 그것은 간다.가시성을 설정할 수 없습니다 : JavaScript를 통해 숨김

내가 가지고있는 것 : 5 개의 다른 표 셀에 5 개의 서로 다른 이미지 + 아래에 게시 할 스크립트.

내가 원하는 것은 :은 자바 스크립트의 사용 ...

document.GetElementById("image ID").style.visibility='visible/hidden' 
... 미리 설정 한 시간이 지나면하지만, 대신 이미지 ID의 이미지의 ID를 가져옵니다 문자열이, 그리고 누군가가 말하기 전에 나는() 안에있는 문자열에 ""을 사용하지 않습니다. 등 뭔가처럼 ...

var n=1; 
function picID() {  
pictureID="pic"+n; 
n=n+1; 
} 

... 그리고 이런 식으로, 그 기능은 우리가 "pic1"의 요소 ID를 가져 호출 될 때마다, "pic2", "pic3"

내 문제는 무엇입니까 : 놈의 일은 작동하지 않습니다. 이미지 스타일은 img 태그에서 정의한 것과 동일하게 유지됩니다. (style="visibility:hidden")

모든 이미지 ID는 img 태그 내에 있습니다.

<script> 
var m=1; 
     function Show() { 
     if (m==6) {m=1;} 

    feat="feat"+m; 
     **document.getElementById(feat).style.visibility="visible";** 
    m=m+1; 
    setTimeout('Show()', 3000); 
    } 
window.onload = Show; 
</script> 

<script> 
var k=1;  
    function Hide() { 
    if (k==6) {k=1;} 

    feate="feat"+k; 
     **document.getElementById(feate).style.visibility="hidden";** 
    k=k+1; 
    setTimeout('Hide()', 3000);  
    } 

window.onload = Hide; 
</script> 

가 발견 쉽게 거라고, 그래서 나는 코드를 분리했습니다

여기에 전체 코드입니다. 유일한 문제는 코드 내의 굵은 선입니다. document.getElementByIddocument.write으로 바꿔서 다른 모든 것을 테스트 했으므로 사용자 정의 ID 문자열이 제대로 작동하는 것을 볼 수 있습니다. 그것은. 그 밖의 모든 것.

제안 사항? 감사.

+5

... –

+0

을하지 않는 경우는 관련이없는,하지만 당신은 *해야 * 함수를 문자열이 아닌'setTimeout'에 전달합니다. 'setTimeout (Show, 3000);과'setTimeout (Hide, 3000);' –

답변

0

k = 0으로 설정해보십시오. k = 1 대신에;

동일한 요소에서 실행중인 show() 및 hide() 함수가 모두있는 페이지를로드하는 것처럼 보입니다. 위의 작업을 수행하면 show()가 실행되는 요소보다 먼저 요소에서 hide()가 실행됩니다.

0

이 코드는 계속 실행됩니다. 때마다 setTimeOut() 호출됩니다. 의 호출하지 않는 경우가해야 예를 들어, m < 6 호는 다른

당신은 숨기기 하나로`onload` 표시 기능을 재정의
관련 문제