首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试官:什么js事件流以及事件模型?

一、事件 在了解什么js事件流之前,我们先了解一下什么js事件。...二、事件流 知道了什么事件,那什么事件流呢? 我们先从字面意义上理解,事件我们已经知道了是什么,那流呢?...我们看看百度对于流的解释 那连着事件我们是不是就能将事件流理解为从页面接收事件的顺序,这些事件连起来就形成了一个像液体一样的整体,这个整体事件又有着自己的执行顺序,这就是事件流。...三、事件流模型 在事件又有着两个模型 事件捕获 事件冒泡 这里我们引用一张图,以便于理解事件流模型 事件冒泡 当节点事件被触发时,会由内圈到外圈 div-->body-->html-->document...由外圈到内圈 document-->html-->body-->div 四、事件流模型发展史 事件冒泡由IE提出的,而事件捕获则是由Netscape(网景)提出的事件流概念。

1.9K10

js事件(event)

事件“的对象赋给这个形参e,这时这个e个系统级的对象:事件; IE事件对象是个全局的属性window.event,而标准浏览器的事件对象就是形参e; 所以事件对象的兼容性写法为:e = e||window.event...,相当于文档的鼠标的坐标; target事件源;事件源的概念:事件最终发生在页面的那个元素上; 事件源和事件的传播息息相关的 事件的传播包括:冒泡和捕获;事件传播浏览器在处理事件行为的机制,冒泡阶段或者捕获阶段...;当你在一个form表单里点击提交按钮时网页会产生一个行为病刷新网页,当你网页上滚动鼠标滚轮的时候,页面的滚动条会滚动等等;这些都叫事件的默认行为,如果想把这些默认行为取消了,相应的js代码如下: a.onclick...;就可以了; 但是要强调的:如果你的事件绑定是用addEventListener来实现的,那阻止默认行为必须用e.preventDefault = true; 事件传播和阻止事件传播:       当事件发生在子元素的时候...在W3C的标准是在同一事件上,先绑定的方法先执行,并且不能重复绑定同一个方法在同一个事件上,但是IE6、7、8,如果绑定的方法少于9个,执行的顺序相反的,超过9个,执行顺序就是混乱的,这些IE的问题都是比较严重的

6.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

JSDOM事件流总结

2.图解 事件捕获 二、事件冒泡 1.概念 事件冒泡:从触发事件的那个节点一直到document,自下而上的去触发事件。...2.图解 事件冒泡 三、DOM事件流 1.概念 DOM事件流相当于将事件捕获与事件冒泡两者结合起来,事件触发的顺序先进行事件捕获阶段 => 目标元素阶段 => 事件冒泡阶段。...2.图解 DOM事件流 3.示例 绑定事件方法(addEventListener)的第三个参数控制事件触发顺序的,默认为false,即事件冒泡;若为true,即事件捕获。 <!...1.用法 #当在事件流执行过程,需要阻止后续的事件的执行,可以使用以下语法 event.stopPropagation(); 2.示例 <!...:捕获阶段的处理函数最先执行,其次目标阶段的处理函数,最后冒泡阶段的处理函数。

3.9K30

js事件

1.document.write(""); 输出语句 2.JS的注释为// 3.传统的HTML文档顺序:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序:window...:(""+变量)10.JS的取字符串长度:(length) 11.JS的字符与字符相连接使用+号. 12.JS的比较操作符有:==等于,!...];[condition];[upadte expression]) {inside loop} 16.循环中止的命令:break 17.JS的函数定义:function functionName(...的all代表其下层的全部元素 56.JS的焦点顺序:document.getElementByid("表单元素").tabIndex = 1 57.innerHTML的值表单元素的值:如<p id...JS调用的外部函数文件其扩展名为.htc 63.window.focus()使当前的窗口在所有窗口之前. 64.blur()失去焦点.与FOCUS()相反. 65.select()元素为选中状态.

10.8K110

js动画事件_JavaScript事件

js之动画事件 首先,动画事件主要包括以下三个animationstart,animationiteration和animationend事件,下面做简单分别介绍。...animationstart 该事件在css动画开始播放时触发 animationiteration 该事件在css动画重新播放时触发 animationend 该事件在css动画结束播放时触发 我们知道...animation:name duration timing-function delay iteration-count direction; 分别是:动画名称 动画持续事件 动画运行速度曲线 动画开始时的运行时间...下面一段代码讲述的采用监听动画开始,动画再次播放和动画结束做出相应的改变,这里用到addEventListener监听动画开始、动画持续播放、动画结束播放。 <!...this.innerHTML="动画重新运行"; x.style.background="greenyellow"; } function myanimationend() //动画运行结束时触发,同样也是通过事件监听事件

18.3K10

Js 事件委托(事件代理)

这里其实还有2层意思: 第一,现在委托前台的同事可以代为签收的,即程序的现有的dom节点事件的; 第二,新员工也是可以被前台MM代为签收的,即程序中新添加的dom节点也是有事件的。...二、为什么使用事件委托 一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果很多的dom需要添加事件处理呢?...在JavaScript,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间...,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能; 每个函数都是一个对象...,对象就会占用内存,对象越多,内存占用率就越大,自然性能就越差了(内存不够用,硬伤,哈哈),比如上面的100个li,就要占用100个内存空间,如果1000个,10000个呢,那只能说呵呵了,如果用事件委托

11.4K30

JS的touch事件与canvas绘图

一次触摸动作(我们指的是手指的触摸)在平面上移动的整个过程, 该标识符不变. 可以根据它来判断跟踪的是否同一次触摸过程. Touch.screenX 触点相对于屏幕左边沿的的X坐标....Touch.target 当这个触点最开始被跟踪时(在 touchstart 事件), 触点位于的HTML元素....需要注意的, 如果这个元素在触摸过程中被移除, 这个事件仍然会指向它, 但是不会再冒泡这个事件到 window 或 document 对象....因此, 如果有元素在触摸过程可能被移除, 最佳实践将触摸事件的监听器绑定到这个元素本身, 防止元素被移除后, 无法再从它的上一级元素上侦测到从该元素冒泡的事件....假设我们获取的window.devicePixelRatio为2,为了显示清晰我们把cavas的宽高也放大了两倍,但是我们通过touch拿到的坐标相对于页面cavas大小(和cavas内部的大小不一致

7.1K41

vue.js实现阻止事件冒泡

当父子元素中都有点击事件的时候,为了让触发子元素事件时,不去触发父元素事件,可以在子元素事件添加stop来阻止事件冒泡。....stop 阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件 .prevent 阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交 .self 只有自己触发的自己才会执行...,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号 .capture 改变js默认的事件机制,默认冒泡,capture功能将冒泡改为倾听模式 .once 事件设置为只执行一次,如 .click.prevent.once...阻止click事件冒泡(防止触发另一个事件)的方法 使用vue阻止子级元素的click事件冒泡。...方法二 可以自己写个阻止冒泡事件 然后在发生冒泡的元素调用这个事件 @click="_stopPropagation($event)" methods:{ _stopPropagation

5.9K10

js事件大全

] onFocus IE3|N2|O3 当某个元素获得焦点时触发的事件 onReset IE4|N3|O3 当表单RESET的属性被激发时触发的事件 onSubmit IE3|N2|O3 一个表单被递交时触发的事件...onBeforeCut IE5|N|O 当页面的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发的事件 onBeforeEditFocus IE5|N|O 当前元素将要进入编辑状态...onBeforePaste IE5|N|O 内容将要从浏览者的系统剪贴板传送[粘贴]到页面时触发的事件 onBeforeUpdate IE5|N|O 当浏览者粘贴系统剪贴板的内容时通知目标对象...onContextMenu IE5|N|O 当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 [试试在页面的中加入onContentMenu="return false...IE5|N|O 当某被拖动的对象在另一对象容器范围内拖动时触发的事件 onDragStart IE4|N|O 当某对象将被拖动时触发的事件 onDrop IE5|N|O 在一个拖动过程,释放鼠标键时触发的事件

3.8K10

js --- 事件

1.事件流   事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流。...2.两种事件流模型   1.冒泡型事件流:事件的传播从最特定的事件目标到最不特定的事件目标。即从DOM树的叶子到根   2.捕获型事件流:事件的传播从最不特定的事件目标到最特定的事件目标。...即从DOM树的根到叶子 3.绑定事件的方法   1.普通浏览器 绑定事件:addEventListener(type,name,bool);     删除事件:removeEventListener...()   2.ie 低版本 绑定事件:attachEvent()     删除事件:detachEvent() 4.参数说明 type 事件类型 例如:click load   name...事件执行函数   bool true 为事件捕获 && false 为事件冒泡 5.阻止事件冒泡和 事件捕获 1.阻止事件冒泡 不 阻止默认行为     event.stopPropagation

7.5K30

JS 事件循环

浏览器执行线程 在解释事件循环之前首先先解释一下浏览器的执行线程: 浏览器多进程的,浏览器每一个 tab 标签都代表一个独立的进程,其中浏览器渲染进程(浏览器内核)属于浏览器多进程的一种,主要负责页面渲染...,脚本执行,事件处理等 其包含的线程有:GUI 渲染线程(负责渲染页面,解析 HTML,CSS 构成 DOM 树)、JS 引擎线程、事件触发线程、定时器触发线程、http 请求线程等主要线程 关于执行的线程...工作线程:也称幕后线程,这个线程可能存在于浏览器或js引擎内,与主线程分开的,处理文件读取、网络请求等异步事件。...宏任务主要包含:script( 整体代码)、setTimeout、setInterval、I/O、UI 交互事件、setImmediate(Node.js 环境) 微任务主要包含:Promise、MutaionObserver...、process.nextTick(Node.js 环境) setTimeout/Promise 等API便是任务源,而进入任务队列的由他们指定的具体执行任务。

15.4K10
领券