DOM-14 【实战】解决事件代理和鼠标移动事件的窘态

鼠标的滑入滑出

案例

事件现象应用场景
mouseover/mouseout绑定在父元素时,对她的所有子元素,事件都生效dom结构简单
mouseenter/mouseleave只对她绑定的元素有效,对window绑定无效dom结构简单
mousemove长触发dom结构复杂

在这里插入图片描述

// 绑定在父元素上
// 即使取消冒泡,这个结果也不变,证明这个现象不是冒泡造成的
<body><div class="outer"><div class="inner"></div></div><script>var oOuter = document.getElementsByClassName('outer')[0],oInner = document.getElementsByClassName('inner')[0]oOuter.onmouseover = function () {console.log('outer移入')}oOuter.onmouseout = function () {console.log('outer移出')}</script>
</body>
// 绑定在子元素上
oInner.onmouseover = function (e) {console.log('inner移入')
}
oInner.onmouseout = function (e) {console.log('inner移出')
}

在这里插入图片描述

// 或者改变绑定的事件,效果同上
var oOuter = document.getElementsByClassName('outer')[0],oInner = document.getElementsByClassName('inner')[0]
oOuter.onmouseenter = function () {console.log('outer移入')
}
oOuter.onmouseleave = function () {console.log('outer移出')
}

事件流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目开发的一般流程

项目开发的一般流程 确定项目需求&#xff1a;拿下一个项目编写《需求说明书》&#xff1a;使用文字和图片的形式将业务表现清楚。不涉及技术&#xff0c;只涉及业务需求。这个环节要和客户反复沟通。编写《概要设计说明书》&#xff1a; 涉及技术的的宏观性的内容&#xff0c;…

获取日期的区间数组

Date.prototype.Format function (fmt) { //author: meizz var o { "M": this.getMonth() 1, //月份 "d": this.getDate(), //日 "h": this.getHours(), //小时 "m": this.getMinutes(), //分 "s": this.getSeconds(), /…

javascript --- 再读作用域和闭包

执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个与之关联的变量对象 // 执行环境中定义的所有变量和函数都保存在这个变量中执行环境与函数: // 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个…

DOM-15/16【实战】鼠标行为预测技术

鼠标预测行为动作复杂&#xff0c;使用事件代理得不偿失&#xff0c;在数量有限的情况下&#xff0c;使用循环绑定更好用户从menu斜着向右下角滑入时&#xff0c;可能是进入main&#xff0c;也可能是要选择子菜单&#xff0c;在判断前先做延迟如何判断用户进入main的意图&#…

SQLMAP命令详解

1.基础信息 python sqlmap/sqlmap.py -u "http://url/news?id1" --current-user #获取当前用户名称 python sqlmap/sqlmap.py -u "http://www.xxoo.com/news?id1" --current-db #获取当前数据库名称 python sqlmap/sqlmap.py -u "http://www.xxoo.…

Nginx命令大全

sudo nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]-?,-h : 打开帮助信息 -v : 显示版本信…

ES6-1 ES6版本过渡历史

一 历史 HTML HTML 1, HTML 2, HTML 3 1991-1997 IETF(the Internet Engineering Task Force) 国际互联网工程任务组1997.1 HTML3.2 W3C JavaScript 1995 liveScript(后改名为JavaScript1996年改名)1996 javascript 1.0 1.1;1997 Jscript1997.6 ECMAScript 1.01998.6 ECMAS…

oracle 数据库查询 COALESCE字符函数

功能&#xff1a;返回其参数中的第一个非空表达式&#xff0c;当你要在n个字段中选取某一个非空值 coalesce函数返回参数&#xff08;列名&#xff09;中第一个非NULL的字段值&#xff0c;注意不是为空 select COALESCE(t1.a ,t2.a) as a from table_a t1left join table_b t2…

Django-model进阶

知识预览 QuerySet中介模型查询优化extra整体插入回到顶部QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET 子句。 1>>> Entry.objects.all()[:5] # (LIMIT 5)>>> Entry.objects.all()[5:10] # (OFFSE…

vue --- 修饰符.lazy、.number、.trim

.lazy: 会在转变为change事件中同步 <div id"app"><input type"text" v-model.lazy"message"><p>{{ message }}</p> </div> <script>const app new Vue({el:#app,data: {message: }}) </script> //…

ES6-2 块级作用域与嵌套、let、暂行性死区

注意&#xff0c;写在开头 function test(x 1) {var x // 不报错console.log(x) } function test1(x 1) {let x 10 // 报错console.log(x) }let的变量名不可以和参数中的名称相同。而var并不限制&#xff0c;说白了就是希望你规范使用变量名。 形参原则上数组函数内部的临…

常用的操作系统知识

为什么要有操作系统 现代计算机系统是由一个或者多个处理器&#xff0c;主存&#xff0c;磁盘&#xff0c;打印机&#xff0c;键盘&#xff0c;鼠标显示器&#xff0c;网络接口以及各种其他输入&#xff0c;输出设备组成的复杂系统&#xff0c;每位程序员不可能掌握所有系统实现…

vue --- 使用中央事件总线(bus)实现跨组件通信

使用Bus实现跨组件传输须注意以下3点: 1.需要创建一个空的Vue实例(bus),来作为中间站 2.使用bus.emit来发送事件3.使用bus.emit来发送事件 3.使用bus.emit来发送事件3.使用bus.on来监听事件(在钩子created中监听) 代码如下: <!DOCTYPE html> <html> <head>…

Execution Order of Event Functions, unity 3d 事件函数的执行顺序

vs_Community.exe --layout "F:\linson\vs2017 comm\offline" --lang zh-CN 学习unity3d&#xff0c;感觉事件顺序很重要。就翻译一下官方文档吧。 Execution Order of Event Functions 事件函数的执行顺序 In Unity scripting, there are a number of event functio…

ES6-3 let进阶、const、全部变量与顶层对象

一 const 1. 定义常量 1.1 引入模块时 const test require(http)1.2 定义时必须赋值(初始化)且不可修改 const a; // Uncaught SyntaxError: Missing initializer in const declaration若赋值为原始值&#xff0c;不可修改若赋值为引用值&#xff0c;对于的地址不可修改&a…

前后端如何通信

目录 前后端如何通信URL . URI . URN第一部分&#xff1a;传输协议第二部分&#xff1a;域名第三部分&#xff1a;端口号第四部分&#xff1a;请求资源文件的路径名称第五部分&#xff1a;问号传参第六部分&#xff1a;HASH值前后端如何通信 前段&#xff1a;客户端 后端&#…

vue --- 获取子组件数据的一个应急方案$refs

使用$refs需要注意以下2点: 1.html方法使用子组件时,需使用ref “xxx” 声明. 2.在父组件中使用,this.refs.xxx.msg 获取数据 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <body><div id"app"…

Mysql 根据出生日期计算年龄

最近因为业务要求需要根据出生日期计算年龄&#xff0c;在网上查了好多的方法&#xff0c;在这里总结一下。 网上的计算方法好多都提到了格里高利历法&#xff0c;特意去查了下资料&#xff0c;普及点知识。 格里高利历是公历的标准名称&#xff0c;是一种源自于西方社会的历法…

ES6-4/5 解构赋值、函数默认值、数组解构、对象解构

ES-4 解构赋值、函数默认值、数组解构、对象解构 ES-5 隐式转换、函数参数解构、解构本质、()用法 一 解构赋值 1 虚值 含义&#xff1a;在Boolean转换结果为假的值falsy 2 函数默认值 ES6 内部使用严格相等运算符&#xff08;&#xff09;&#xff0c;判断一个位置是否有值…

springboot之session、cookie

1- 获取session的方案 session: https://blog.csdn.net/yiifaa/article/details/77542208 2- session什么时候创建&#xff1f; 一个常见的误解是以为session在有客户端访问时就被创建&#xff0c;然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样…