为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里设置(that.className="select";)可以使用反而根据视频教程编写的( titles[that.index].className="select";),就没反应呢?

function select(id){

return typeof id==="string"?document.getElementById(id):id;

}


window.onload=function(){

var timer =null;

 var titles =select("notice-tit").getElementsByTagName("li"),

  divs   =select("notice-con").getElementsByTagName("div");

  if(titles.length!==divs.length){

  return;

  }

  for (var i =0;i<titles.length;i++){

  titles[i].index=i;

  titles[i].onmouseover=function(){

  var that=this;

  if (timer){

  clearTimeout(timer);

  timer=null;

  }

  timer =setTimeout(function(){

  for(var j=0;j<titles.length;j++){

  titles[j].className="";

  divs[j].style.display="none";

  }

  that.className="select";

  /* titles[that.index].className="select";*/

  divs[that.index].style.display="block";

  },500);

  }

  }

}


正在回答

2 回答

我做了我的可以。你前面既然that可以用证明基本上是对的。可能就是一个没注意的地方。F12控制台报错看看是第几行。我的布局和老师的不一样。代码不同。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <title>tab切换</title>
  <style type="text/css">
  *{margin: 0px;padding: 0px;list-style:none;font-size: 16px;}
  .tab{margin: 50px auto;position: relative;width: 600px;height:98px;overflow: hidden;border: 1px solid #ccc;}


  .notice1{width: 600px;height:27px;}
  .notice1 li{width: 118px;height: 27px;text-align: center;background: #f7f7f7;float: left;border-bottom: 1px solid #eee;line-height: 27px;padding: 0 1px}
  .notice1 li a,.notice2 li a{text-decoration: none;color: #000}
  .notice1 .select{background: #fff;border-bottom: 1px solid #fff;border-left: 1px solid #eee;border-right: 1px solid #eee ;padding: 0px 0px;font-weight:bold;}
  .notice2 li{float: left;margin:7px 10px;width: 280px;text-align: center;}

  </style>
</head>
<body>
    <div id="tab" class="tab">
      <ul id="notice1" class="notice1">
        <li><a href="">公共</a></li>
        <li><a href="">规则</a></li>
        <li><a href="">论坛</a></li>
        <li><a href="">安全</a></li>
        <li class="select"><a href="">公益</a></li>
      </ul>
      <ul class="notice2" style="display:none">
        <li><a href="">公共厕所公关广告公关广告</a></li>
        <li><a href="">公共厕所公关广告公关广告</a></li>
        <li><a href="">公共厕所公关广告公关广告</a></li>
        <li><a href="">公共厕所公关广告公关广告</a></li>
      </ul>
      <ul class="notice2" style="display:none">
        <li><a href="">规则厕所公关广告公关广告</a></li>
        <li><a href="">规则厕所公关广告公关广告</a></li>
        <li><a href="">规则厕所公关广告公关广告</a></li>
        <li><a href="">规则厕所公关广告公关广告</a></li>
      </ul>
      <ul class="notice2" style="display:none">
        <li><a href="">论坛厕所公关广告公关广告</a></li>
        <li><a href="">论坛厕所公关广告公关广告</a></li>
        <li><a href="">论坛厕所公关广告公关广告</a></li>
        <li><a href="">论坛厕所公关广告公关广告</a></li>
      </ul>
      <ul class="notice2" style="display:none">
        <li><a href="">安全厕所公关广告公关广告</a></li>
        <li><a href="">安全厕所公关广告公关广告</a></li>
        <li><a href="">安全厕所公关广告公关广告</a></li>
        <li><a href="">安全厕所公关广告公关广告</a></li>
      </ul>
      <ul class="notice2" style="display:block">
        <li><a href="">难难厕所公关广告公关广告</a></li>
        <li><a href="">难难厕所公关广告公关广告</a></li>
        <li><a href="">难难厕所公关广告公关广告</a></li>
        <li><a href="">难难厕所公关广告公关广告</a></li>
      </ul>
    </div>
</body>
  <script type="text/javascript" >
  window.onload=function(){
    var timer=null;
    
    var onotice1 = document.getElementById("notice1");
    var oli = onotice1.getElementsByTagName("li");
    var otab = document.getElementById("tab");
    var oul = otab.getElementsByTagName("ul");

    for (var i = 0;i<oli.length; i++) {
        oli[i].index=i+1;

        oli[i].onmouseover=function(){
          var that=this
          clearTimeout(timer);
          
          timer=setTimeout(function(){
            for (var j= 0; j<oli.length; j++) {
              oli[j].className="";
              oul[j+1].style.display="none";
            };
            that.className="select";//设置当前鼠标经过的li添加class.
            oul[that.index].style.display="block";
          },500)
        }
    }
  }

  </script>
</html>

0 回复 有任何疑惑可以回复我~
#1

慕粉3274123 提问者

非常感谢!
2016-07-27 回复 有任何疑惑可以回复我~
#2

慕客学渣会总瓢把子3201537 回复 慕粉3274123 提问者

是哪里的问题?
2016-07-27 回复 有任何疑惑可以回复我~
#3

慕粉3274123 提问者 回复 慕客学渣会总瓢把子3201537

今天我在编辑器试下,发现两个都可以的,但是昨晚不知道为什么不行。具体是什么原因我也不清楚,毕竟代码都是一样得。
2016-07-27 回复 有任何疑惑可以回复我~

我一会做一下试试。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这里设置(that.className="select";)可以使用反而根据视频教程编写的( titles[that.index].className="select";),就没反应呢?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号