博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js--延时消失的菜单--(笔记)
阅读量:5162 次
发布时间:2019-06-13

本文共 896 字,大约阅读时间需要 2 分钟。

html:有4个li,li下分别有一个span

<script>

   window.οnlοad=function(){
    var aLi=document.getElementsByTagName('li'); 
    /*var timer=null; 全局timer的问题是:划到另一个项上,timer已被清除,上一项下拉菜单还遗留为收回,这样就是一个bug了;所以要每个li加一个timer,定义为自身的属性, 这样就只清除本身的timer ,不影响其他选项*/
    for(var i=0;i<aLi.length;i++){
    aLi[i].οnmοuseοver=show;
    aLi[i].οnmοuseοut=hide;
    aLi[i].getElementsByTagName('span')[0].οnmοuseοver=show;
    aLi[i].getElementsByTagName('span')[0].οnmοuseοut=hide; }
     
    function show(){
     clearInterval(this.timer );
     //划到另一项时,需要其他子项及时消失,so~
     for(var i=0;i<aLi.length;i++){ //记得数组下标比其长度小1,但是i<(小于),所以无需减一
      aLi[i].getElementsByTagName('span')[0].style.display='none';
     }     
     this.getElementsByTagName('span')[0].style.display='block';
     }
     
    function hide(){  
     var _this=this; 
     this.timer=setTimeout(function(){
      _this.getElementsByTagName('span')[0].style.display='none';
      },1000);   
     } 
    }
  </script>

注:timer里面不能用this

转载于:https://www.cnblogs.com/alanaZ/p/4369305.html

你可能感兴趣的文章
popular short sentences
查看>>
Python操作SQLite数据库的方法详解
查看>>
如何透彻的掌握一门机器学习算法
查看>>
用数据分析进行品类管理
查看>>
实验二:编写输出"Hello World!"
查看>>
cocos2d关于glew32.lib错误(转)
查看>>
菜单和工具条(二)
查看>>
面试经验[all]
查看>>
算法笔记
查看>>
6 行为型模式之 - 命令模式
查看>>
Mvc ModelState.isValid为false时,检查时那个字段不符合规则的代码
查看>>
Python 之 基础知识(三)
查看>>
cluster集群
查看>>
搞JAVA在北京月薪15K的朋友来到厦门却很难找到工作
查看>>
冒泡数组排序
查看>>
kibana5画图
查看>>
类的加载和反射
查看>>
Linux学习笔记四
查看>>
JavaScript
查看>>
[转]getHibernateTemplate出现的所有find方法的总结
查看>>