zoukankan      html  css  js  c++  java
  • mouseover,mouseout,mouseenter,mouseleave的区别

    1.前言

       今天下午参加一个面试,对方问我写不写博客,这时候才猛然意识到好久没写东西了。最近一直在外边实习,每天有很多经历和挑战,但是却没有及时地记录下来,这一点必须得批评自己,以后得经常把自己遇到的问题及时记录下来。

       言归正传,今天面试卡住的第一个问题就是问我如何获取mouseenter、mouseleave中的两个对象?对这两个对象我只知道它们的特点是均不冒泡,是DOM新规范定义的方法,至于其他东西就不知道了。

    2.二者的区别(以mouseover、mouseenter为例)

    <!doctype html>
    <html>
    <head>
        <title>mouseover and mouseenter</title>
        <style>
           #outer{ 800px;  border: 1px solid #DDD; overflow: hidden; padding: 100px 50px;} 
           #inner{height: 120px;  border:1px solid #DDD; }
        </style>
    </head>
    <body>
        <div id="outer"> 
    	<p id="inner">aaaaaa</p> 
        </div>
    </body>
    </html> 
    <script>
       var outer = document.getElementById('outer');
       outer.addEventListener('XXX',function(event){
    	console.log('target:' + EventUtil.getTarget(event));
    	console.log('relatedTarget:' + EventUtil.getRelatedTarget(event)); 
       });
       var EventUtil = {
    	getEvent: function(event){
    		return event || window.event;
    	},
    	getTarget: function(event){
    		return EventUtil.getEvent(event).target || EventUtil.getEvent(event).srcElement;
    	},
    	getRelatedTarget: function(event){
    		return EventUtil.getEvent(event).relatedTarget || EventUtil.getEvent(event).fromElement || EventUtil.getEvent(event).toElement ;
    	}
       }
    </script>
    

      当xxx = mouseover时:把鼠标放在outer容器里面来回移动,就会发现控制台不断地输出,说明mouseover是可以冒泡的;

      当xxx = mouseenter时:把鼠标放在outer容器里面来回移动,就会发现控制台没有输出,说明mouseenter是不冒泡的;

    3.关于上面的EventUtil.getRelatedTarget则是考虑到IE和非IE兼容性。

    4.jquery新发现:查看jquery的hover方法,就会发现

    jQuery.fn.hover = function( fnOver, fnOut ) {
    	return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
    };
    

      看来jquery早就也意识到mouseover、mouseout冒泡带来的问题了。

      

  • 相关阅读:
    树莓派学习记录
    ESP8266
    城轨列控系统
    VMware+CentOS7学习记录
    眼镜
    调试蜂鸣器驱动电路
    假期作业进度6
    假期作业进度5
    假期作业进度4
    假期作业进度3
  • 原文地址:https://www.cnblogs.com/shamoguying1140/p/3341511.html
Copyright © 2011-2022 走看看