2010-07-04 88 views
0

我做了一個代碼,只顯示一個div 並自動隱藏div在x秒後 它第一次工作後只有 ............ ........ 這裏是代碼2秒後自動隱藏div

<script type="text/javascript"> 

function showonlyone(thechosenone) { 
     var newboxes = document.getElementsByTagName("div"); 
      for(var x=0; x<newboxes.length; x++) { 
        name = newboxes[x].getAttribute("name"); 
        if (name == 'newboxes') { 
         if (newboxes[x].id == thechosenone) { 
         newboxes[x].style.display = 'block'; 
        } 
        else { 
         newboxes[x].style.display = 'none'; 
        } 
      } 
     } 
} 
function hidediv(arg) { 
    document.getElementById(arg).style.display = 'none'; 
} 
setTimeout("hidediv('newboxes1')", 4000); 
setTimeout("hidediv('newboxes2')", 4000); 
setTimeout("hidediv('newboxes3')", 4000); 
</script> 
<div style="float:left;padding-left:5px;padding-right:5px;" > 
     <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;"> 
      <a id="myHeader1" href="javascript:showonlyone('newboxes1');" >collapse</a> 
     </div> 
     <div name="newboxes" id="newboxes1" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px;">Div #1</div> 
    </div> 
    <div style="float:left;padding-left:5px;padding-right:5px;" > 
     <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;"> 
      <a id="myHeader2" href="javascript:showonlyone('newboxes2');" >collapse</a> 
     </div> 
     <div name="newboxes" id="newboxes2" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px;">Div #2</div 
    </div> 
    <div style="float:left;padding-left:5px;padding-right:5px;" > 
     <div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px;"> 
      <a id="myHeader3" href="javascript:showonlyone('newboxes3');" >collapse</a> 
     </div> 
     <div name="newboxes" id="newboxes3" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px;">Div #3</div 
    </div> 
+0

IIRC name屬性是不是一個DIV元件,唯一形式,表單控件中,(i)幀,並且錨定件上的有效...一個類可能會更好一些(也提供了一個方便的樣式鉤) – scunliffe 2010-07-04 13:23:09

回答

2

代替setTimeout

例如:

setInterval(function(){ hidediv('newboxes1');}, 4000); 
setInterval(function(){ hidediv('newboxes2');}, 4000); 
setInterval(function(){ hidediv('newboxes3');}, 4000); 
0

更好地調試代碼。 你可以安裝firefox for firefox。這是一個很好的查找JS錯誤的工具。使用setInterval