2012-05-14 2 views
0

code javascript:pourquoi la souris sur et hors ne fonctionne pas?

<script type="text/javascript"> 
      window.onload=function(){ 
      var Div1 = document.getElementsByClassName("title"); 
      var Div2 = document.getElementsByClassName("sub-menu"); 
      var timer=null; 
      Div1.onmouseover = function(){ 
       clearTimeout(timer); 
       Div2.style.display='block'; 

      }; 
      Div1.onmouseout=function(){ 
       timer=setTimeout(function(){ 
        Div2.style.display='none'; 
       },300); 

      }; 

      Div2.onmouseover =function(){ 
       clearTimeout(timer); 
      }; 

      Div2.onmouseout=function(){ 
       timer=setTimeout(function(){ 

         Div2.style.display='none'; 
        },300); 


      }; 
     } 

    </script> 

code html:

<div id="nav"> 
    <div class="left"></div> 
    <div class="right"></div> 
    <ul> 
    <li><a href="/" class="current">Home</a></li> 
    <li class="title"><a href="/cpanel.html" class="">cPanel</a> 
     <div class="sub-menu"> 
     <div style="float:left"> 
      <h2>test</h2> 
      <ul> 
      <li> 
       <a href="#">test</a> 
      </li> 
      <li> 
       <a href="#">test</a> 
      </li> 
      </ul> 
     </div> 
    <div style="float:left"> 
      <h2>service</h2> 
      <ul> 
      <li> 
       <a href="#">hello</a> 
      </li> 
      <li> 
       <a href="#">hello</a> 
      </li> 
      </ul> 
     </div> 
</div> 
    </li> 





    <li class="title"><a href="/price.html" class="">Price</a> 
    <div class="sub-menu"> 
     <ul> 
      <li> 
       <a href="#">hello</a> 
      </li> 
      <li> 
       <a href="#">world</a> 
      </li> 
      </ul> 
     </div> 




    </li> 

    </ul> 
</div> 

css:

#nav ul li{ 
    float: left; 
    margin-right:50px; 
    list-style: none; 
    border-bottom: 1px solid red; 
    position: relative; 
    border: 1px solid red; 
     } 
#nav ul li .sub-menu{ 
    display: none; 
    font-weight: normal; 
    margin-top: 1px; 
    padding: 0 10px 10px; 
    position: absolute; 
    text-align: left; 
    width:auto; 
    left: 10px; 
    top:30px; 
    border:1px solid #CCCCCC; 
    width: 300px; 
    } 

le code js ne work.when pas que je mets la souris sur le texte cpanel il doesn Ne montre pas le contenu correspondant qui sous il.Je ne sais pas quel est le problème avec comment le corriger. Merci d'avance.

+0

Votre minuterie var sera une variable locale dans la fonction onload, et sera très probablement pas disponible pour les différents minuterie vous appelle effectuer. –

+0

duplication possible de [getElementsByClassName ne fonctionne pas] (http://stackoverflow.com/questions/3349332/getelementsbyclassname-not-working) –

+0

Il y a beaucoup de problèmes avec votre approche. Je vous suggère de ne pas essayer de prendre un raccourci, mais d'ajouter simplement les gestionnaires d'événements, ou, dans votre cas, d'apprendre à utiliser jquery pour prendre soin de cela pour vous. –

Répondre

2

getElementsByClassName() renvoie un HTMLCollection. Vous devez sélectionner le premier élément de cette collection, en le traitant comme un tableau:

var Div1 = document.getElementsByClassName("title")[0]; 
var Div2 = document.getElementsByClassName("sub-menu")[0]; 
Questions connexes