js 鼠标事件mouseover和mouseout在父盒子移到子盒子中的思考
mouseover事件一般不推荐使用不过最近遇到了一个问题,就思考了一下。
如上图所示:
HTML代码如下
<div class="father"><div class="son"></div></div>
js代码
var father = document.querySelector('.father')
var son = document.querySelector('.son')
father.addEventListener('mouseover',function(e){console.log("移入了")})father.addEventListener('mouseout',function(e){console.log("移出了")})
从父盒子移动到子盒子过程中先打印移出在打印移入。
原因思考:
1、鼠标移动到子盒子上,浏览器默认鼠标离开父盒子了所以打印“移出”,但是已经移到子盒子中,在子盒子中有移入事件,但是没有事件对应函数,然后事件冒泡给了父盒子,父盒子有mouseover事件对应函数,所以打印了“移入”。犹豫有一个冒泡过程所以先打印“移出”在打印与“移入”。
为了验证猜想:
js代码添加阻止冒泡事件
var father = document.querySelector('.father')
var son = document.querySelector('.son')
father.addEventListener('mouseover',function(e){console.log("移入了")})father.addEventListener('mouseout',function(e){console.log("移出了")})son.addEventListener('mouseover',function(e){// console.log("son移入了");e.stopPropagation()
})son.addEventListener('mouseout',function(e){// console.log("son移出了")e.stopPropagation()
})
如下图所示就只有移出,没有移入了
以上是个人愚见,如有错误请大牛不吝赐教!
js 鼠标事件mouseover和mouseout在父盒子移到子盒子中的思考相关推荐
- JS鼠标事件mouseout与mouseleave以及mouseover与mousemove区别
JS鼠标事件mouseout与mouseleave以及mouseover与mousemove区别 mouseout: mouseout是由子元素冒泡而来 鼠标指针位于一个元素上方,然后用户将其移入另一 ...
- JS鼠标事件(非常详细)
这里写目录标题 一. 常用到的鼠标事件 鼠标点击 鼠标移动 鼠标经过 鼠标来源 鼠标定位 鼠标按键 一. 常用到的鼠标事件 在 JavaScript 中,鼠标事件是 Web 开发中最常用的事件类型,鼠 ...
- JS鼠标事件实现动效
1 JS鼠标事件 click鼠标点击事件 事件对象.onclick=function() {} mousedown / mouseup 鼠标按下/松开事件 事件对象.onmousedown =func ...
- c语言鼠标事件的详解,JS鼠标事件(非常详细)
在 JavaScript 中,鼠标事件是 Web 开发中最常用的事件类型,鼠标事件类型详细说明如下表所示: 鼠标事件类型 事件类型 说明 click 单击鼠标左键时发生,如果右键也按下则不会发生.当用 ...
- js鼠标事件大全-Javascript鼠标事件大全
js鼠标事件大全-Javascript鼠标事件大全 2009年03月11日 星期三 14:22 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClick 当键盘上的某个键被按下并且释放时 ...
- 父盒子高度为子盒子总高度自动撑满 height: fit-content; //设置内容高度
给父盒子设置高度=子盒子总高度 属性: height: fit-content; //设置内容高度
- js 鼠标事件总结 mouseover/mouseout 与mouseenter/mouseleave 傻傻分不清楚?
1. 鼠标事件 mouseenter mouseleave (一对事件 鼠标的进入和离开) 不支持冒泡 mouseenter:鼠标从元素外部移到元素内部时触发. mouseleave:鼠标从元素内部移 ...
- leaflet鼠标进出事件 mouseover和mouseout (示例代码009)
第009个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中给marker添加鼠标事件,这里用到了mouseover和mouseout. 直接复制下面的 vue+leaflet源 ...
- 鼠标事件(mouseover和mouseenter)
下拉菜单案例 前言 一.mouseover和mouseenter的不同点 1.事件的触发时机 2.是否支持冒泡 二.案例 总结 前言 自己做下拉菜单的时候,突然发现mouseover和mouseent ...
最新文章
- docker 安装MongoDB以及设置用户
- 【老孙随笔】项目经理要如何看待技术?
- play!framework框架概述
- Linux的Vim编辑器
- oracle PL/SL编程基础
- 带你啃透深度学习必学“圣经”花书!(附带论文代码精读讲解)
- 软件运维工程师岗位职责和要求
- 2021 年中国城市发展规划数据源
- 写了一个根据ISBN查询图书信息接口,把收藏的几百万本图书分享给大家
- 金蝶K3系统单据对应ICTemplate表单ID信息
- 计算机无法进入bios模式,电脑系统无法进入bios界面解决方法
- vue中a的href写法
- 解决android api30以上,调用华为P50相机,点击拍照无反应问题
- 【破解EXE】VC程序的破解及修改一例
- nvidia驱动,cuda与cudnn的关系
- Linux下JAVA程序启动脚本(实例)
- 用python3实现MD5withRSA数字签名的验证
- C# 建一个Windows 服务 定时发邮件
- element 饿了么前端框架基础
- 城市间紧急救援 (25 分)