javascript - 为什么鼠标移出和移出不起作用?

标签 javascript

JavaScript 代码:

<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>

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;
  }

js代码不起作用。当我将鼠标放在文本cpanel上时它没有显示其下相应的内容。我不知道它有什么问题如何纠正。提前致谢。

最佳答案

getElementsByClassName() 返回 HTMLCollection 。您需要通过将其视为数组来选择该集合的第一个元素:

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

关于javascript - 为什么鼠标移出和移出不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576726/

相关文章:

javascript - 有没有办法知道 navigator.geolocation 坐标的来源?

javascript - 将 JSON 文件保存到express( Node )中的服务器

javascript - Leaflet - 可拖动标记和坐标以字段形式显示

javascript - 如何避免这种邪恶评估的情况?

javascript - 动态加载其他 Google map 库

javascript - PDF:用于填写表单字段的 Javascript

javascript - fullcalendar 事件拖放在 Firefox 中不起作用

javascript - 当在 jquery.menu-aim 中打开父菜单时,强制子菜单可见

javascript - 从 API 获取数据并显示为名称和网站链接

javascript - 将过渡应用于更改 div 内容