2010-07-04 89 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