求高手帮我看下,那里错了我效果实现不了~~~~

来源:2-1 js实现延迟切换

qq_郑岚_0

2015-02-14 11:27

function $(id){
   return typeof id==='string'?document.getElementById(id):id;
}
window.onload=function(){
   //标签的索引
   var index=0;
   var timer=null;
   var lis=$('notice-tit').getElementsByTagName('li'),
       divs=$('notice-con').getElementsByTagName('div');
   if(lis.length!=divs.length) return;
   //遍历所有页签
   for(var i=o;i<lis.length;i++) {
       lis[i].id = i;
       lis[i].onmouseover = function{
           //用that变量来引用当前li;
           var that=this;
           //如果存在准备执行的定时器,立即清除;只有当时时间大于500ms开始执行;
       if(timer){
           clearTimeout(timer);
           timer=null;
            }
           //延迟半秒执行;
       timer=setTimeout(function(){
           for(var j=0; j<lis.length;j++){
           lis[j].className='';
               divs[j].style.display='none';
           }
       lis[that.id].className='select';
       divs[that.id].className='block';
       },5000);
       }
   }
}

求高手帮我看下,那里错了我效果实现不了~~~~

写回答 关注

3回答

  • 一模拉仨
    2015-04-28 12:52:23

     lis[i].onmouseover = function{

    这句后面少了()

    应该是 lis[i].onmouseover = function (){

  • 雨中的鱼L
    2015-03-25 15:06:02

    代码没有问题,应该是你写的setTimeout(function(){},5000);你写了5000,就是5秒了,太久了,

  • qq_黑颂_0
    2015-02-14 14:28:53

    随便看了下, onmouseover 这个,算是回调函数(反正我这么理解的)。

    这样的话 ,每次调用到的i就会是 li.length的值,所以 出错。

    你试试 换成匿名函数.

                (function(i){

                  lis[i].id = i;

                  lis[i].onmouseover = function{

                      //用that变量来引用当前li;

                      var that=this;

                      //如果存在准备执行的定时器,立即清除;只有当时时间大于500ms开始执行;

                  if(timer){

                      clearTimeout(timer);

                      timer=null;

                       }

                      //延迟半秒执行;

                  timer=setTimeout(function(){

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

                      lis[j].className='';

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

                      }

                  lis[that.id].className='select';

                  divs[that.id].className='block';

                  },5000);

                  }

                })(i);//你自己试试。 


Tab选项卡切换效果

本课程详细介绍网页页面中最流行常用的tab切换效果

65469 学习 · 533 问题

查看课程

相似问题