DOM重点核心(注册事件+DOM事件流)

目录

1.注册事件

注册时间概述

addEventListener()

删除事件

2.DOM事件流

DOM事件流理论

事件对象

事件对象的常见属性和方法

e.targe 和 this的区别

阻止默认行为

阻止冒泡

事件委托

禁止右键菜单和禁止选中文字

获得鼠标的坐标(可视区、页面、浏览器)

常用键盘事件

keyCode判断用户按下的键的ASCII值


1.注册事件

注册时间概述

传统注册方式,特点是注册时间是唯一的

方法监听注册方式,特点是同一个元素同一个事件乐意注册多个监听器

addEventListener()

eventTarget.addEventListener(type,listener[,useCapture])

type 事件类型字符串,比如click,mouseover,这里要注意不需要带on了

listener事件处理函数,事件发生时,会调用该监听函数

useCapture 可选参数,是一个布尔值,默认值是false

addEventListener(eventName,fn)    不需要添加'on'

attachEvent  中需要添加‘on’

删除事件

传统方式删除  div[0].οnclick=null

第一种  写eventTarget.addEventListener('click',函数),就是把函数体写在了外面 里面的函数调用不用再加小括号

          div[0].addEventListener('click',fn)        //不要看图片中的,这一步是要写的

          function fn(){

                alert(22)

                div[1].removeEventListener('click',fn)

}

第二种,先写eventTarget.attchEvent('onclick',函数) ,再同上写

两种写法无非就是第二种比第一种多了“on”

2.DOM事件流

DOM事件流理论

捕获阶段从大到小,冒泡阶段从小到大

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流

addEventListener(type,listener[,useCapture])   

addEventListener(type,function(){},true/false)

  第三个参数如果是true,表示在事件捕获阶段调用事件处理程序;如果是false或者是省略,表示在事件冒泡阶段调用事件处理程序

有些事件是没有冒泡的,比如onblur 、onfocus 、onmouseenter、 onmouseleave

事件对象

eventTarget.οnclick=function(event){}

eventTarget.addEventListener('click',function(event){})

event就是事件对象,写在函数的小括号中

标准浏览器中将event 单写成e就可以识别,但是有些不能用,需要写window.event来获取查找

事件对象的常见属性和方法

e.targe 和 this的区别

e.target 返回的是触发事件的对象(元素)      this 返回的是绑定事件的对象(元素)

e.target  点击了哪个元素,就返回那个元素; this 不论点击谁,返回的都是绑定事件

一些兼容性问题

阻止默认行为

返回事件类型

div.addEventListener('事件类型',调用函数)   函数中写e.type

阻止默认行为(如让链接不跳转、点击提交按钮不提交)

普通浏览器 e.preventDefault()      前面接受的对象(var)是链接或者按钮

低版本浏览器 e.returnValue;

只限于传统的注册方式 return false

阻止冒泡

标准浏览器  e.stopPropagation()

低版本浏览器  e.cancelBubble=true    可以先进行一个判断

写在函数中,可以组织后面的冒泡

事件委托

不是给每个子节点单独设置事件监听器,而是将事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个节点

绑定父级元素,在父级元素的函数中添加需求    e.target可以获得点击对象

禁止右键菜单和禁止选中文字

contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单

在函数中添加e.preventDefault()即可

selectstart 开始选中  (不能进行复制等操作)

在函数中添加e.preventDefault()即可

获得鼠标的坐标(可视区、页面、浏览器)

client 鼠标在可视区的x和y坐标   e.clientX x方向     e.clientY y方向

page 鼠标在文档页面的x和y坐标   e.pageX  x方向   e.pageY y方向

screen 鼠标在电脑屏幕的x和y坐标     e.screenX x方向    e.screenY y方向

移动天使

用到了mousemove的触发方式,只要鼠标移动1px,事件就会被触发

常用键盘事件

onkeyup 某个按键被松开时触发

onkeydown  某个按键被按下时触发

onkeypress  某个按键被按下时触发 但是它不识别功能键,比如ctrl、shift、箭头等

使用addEventListener时不用加‘on’

三个时间的执行顺序是:keydown-keypress-keyup

keyCode判断用户按下的键的ASCII值

onkeydown和onkeyup不区分大小写    onkeypress区分大小写

将时间方式定义为"keyup"或者其他,在函数中直接console.log(e),就会出现点击按钮输出的结果

输入内容案例

用keyup而不用keydown,前者是弹开后进入判断再去执行事件不会再输入内容,而后者是直接输入内容再去进行判断

目标位置.focus()  focus直接定位到目标位置

这里写的是document.addEventListener(),是因为是在整个网页中点击的,绑定的是整个网页

快递单号查询

在大盒子中放两个小盒子,一个是弹出的显示大框,一个是输入框

keydown和keypress在文本框中的特征:两个事件触发时,文字还没有落进文本框 ,而keyup触发时文字已经落入文本框了

还有一个使用keyup的原因是,在按键的时候能先输入文字,即文本框中有字,隐藏的框能检测到value值不为空,所以能显示出来;如果换成其他两种形式,第一次在按键的时候,显示大框不会弹出来

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一种流行的JavaScript框架,用于构建交互式的用户界面和单页面应用程序。它具有许多重要的特性和知识点。 首先,Vue的核心概念包括数据驱动、组件化和响应式设计。数据驱动意味着视图是由数据驱动的,当数据发生改变时,视图会自动更新。组件化使得用户界面可以被分解成独立的组件,每个组件包含自己的数据、模板和逻辑。响应式设计可以让数据变化时自动更新DOM,而不需要手动操作。 其次,Vue的重要知识点包括指令、生命周期钩子、计算属性、事件处理、过滤器等。指令是用于扩展HTML的特殊属性,例如v-if、v-for等。生命周期钩子提供了在Vue实例生命周期不同阶段执行代码的机会。计算属性可以根据依赖的数据动态计算出一个新值。事件处理允许我们对用户的输入做出响应。过滤器可以对数据进行一些处理后再显示到视图上。 最后,Vue还有一些重要的工具和插件,如Vue Router用于构建单页面应用的路由系统,Vuex用于集中式状态管理,Vue DevTools用于调试Vue应用程序等。 综上所述,Vue的重点知识包括核心概念、重要知识点和工具插件。掌握这些知识可以帮助开发者更好地理解和应用Vue.js框架,从而构建出功能强大、高效的前端应用程序。若想深入学习Vue.js,可以阅读相关的pdf文档或官方文档,这将对理解和运用Vue有很大帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值