我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

陈紫怡-20221110-DOM&BOM-04

[复制链接]
Dasmondlicht 发表于 2022-11-11 00:27:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、今日学习内容:
事件的深入
事件注册:window.onload/click
传统事件注册方式onclick:
唯一性,同一个元素,同一个事件只能设置一个处理函数,最后注册的事件处理函数将会覆盖前面注册的处理函数
事件监听注册方式addEventListener
同一个元素,同一个事件,可以设置多个事件处理函数,执行的顺序按照默认书写顺序,注册的顺序
移除解绑事件
传统
function box() {
console.log( 'box1' );
document.querySelector( '#b1' ).onclick = null;
}
监听
dom.addEventListener( 'click' , fn);
function fn() {
console.log( 'dom' );
dom.removeEventListener( 'click' , fn);
}
事件流
所有的元素都不是独立,是串联在一起的,单个元素触发事件之后还会影响其他元素
事件冒泡(从小到大)
在点击完成之后理解触发目标对象,然后一层一层向上冒泡
事件捕获(从大到小)
在点击完div后不会立即触发div的事件,而是一层一层向下捕获,最终到达div才触发事件
事件对象
event事件对象是传递给事件处理函数的唯一参数
currentTarget当前事件处理程序所在元素
target事件目标,只包含事件的真实目标
this:时钟指向的是currentTarget
在事件处理内部,只有一个节点时,this、target、currentTarget指向的是同一元素dom
阻止默认事件
阻止a标签的默认跳转
e.preventDefault()
阻止冒泡/捕获
e.stopPropagation()
第三个参数
不传参(相当于false)----从小到大,冒泡
传参(true)----从大到小,捕获
禁用(修改type类型)
dom.disabled
验证码(画布)
引入js文件
<script src="./captcha-mini.js"></script> <canvas width="120" height="50" id="captchal"></canvas>
// 保存真实验证码
let trueCode = '';
// 验证码插件的使用
let captchal = new CaptchaMini();
captchal.draw(document.querySelector('#captchal'), function (r) {
trueCode = r;
});
阻止事件的默认行为
阻止右键菜单的事件,禁用鼠标右键
contextmenu
eg:
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
});
阻止鼠标左键选择(复制)文本
selectstart
eg:
document.addEventListener('selectstart', function (e) {
e.preventDefault();
})
键盘事件
keyCode判断键盘上各个键的Code值
键盘事件里面的input没有keyCode
回车----13
左上右下----37 38 39 40
awds----65 87 68 83
空格----32
模拟百度搜索
模拟视频控制按钮
事件委托(委派/代理)
子元素较多时,绑定的事件都是同一个事件---同一事件处理函数
通过事件捕获来绑定
动态添加的元素----后期动态添加没有注册上点击事件

回复

使用道具 举报

关注0

粉丝0

帖子50

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026