美文网首页js
JS事件流机制

JS事件流机制

作者: 马小帅mm | 来源:发表于2018-09-03 14:44 被阅读0次

事件流指的是

1.节点的捕获
2.处理事件
3.事件的冒泡

目前分为事件冒泡流,事件捕获流;

区别:
1.事件冒泡流在事件冒泡阶段响应事件
2.事件捕获流在捕获节点过程响应事件。
3.大部分浏览器默认的都是事件源冒泡流的方式来响应事件
使用:
addEventListener最后一个参数, 为true则代表使用事件捕获模式 ,false则表示使用事件冒泡模式。

事件冒泡流是如何绑定到对应的元素上的?又是如何做出响应?

1.从根元素html一级一级往内寻找,直到找到id="getCopy"的元素
2.为这个元素处理click事件
3.根据事件冒泡法从这个元素一级一级往外响应事件,直到根节点

var btn = document.getElementById('getCopy');
btn.addEventListener('click',  function(){
    console.log('btn click');
}, false);

事件捕获流是如何绑定到对应的元素上的?又是如何做出响应?

1.从根元素html往内寻找,寻找过程中一级一级往内响应事件,直到找到id="getCopy"的元素
2.为这个元素处理click事件
3.从这个元素开始往外一级一级的事件冒泡,直到根节点

var btn = document.getElementById('getCopy');
btn.addEventListener('click',  function(){
    console.log('btn click');
}, true);

addEventListener同一个元素绑定相同的事件和方法,后一个会覆盖前一个

var btn = document.getElementById('getCopy');
var btnFun = function(){
    console.log('btn click');
}
btn.addEventListener('click', btnFun, false);//该事件被后一个覆盖
btn.addEventListener('click', btnFun, false);//输出 btn click

addEventListener同一个元素绑定相同的事件和不同的方法,后一个不会覆盖前一个

var btn = document.getElementById('getCopy');
btn.addEventListener('click', function(){
    console.log('btn click1');//输出 btn click1
}, false);
btn.addEventListener('click', function(){
    console.log('btn click2');//输出 btn click2
}, false);

阻止事件冒泡 stopPropagation

btn.addEventListener('click', function(event){
    console.log('btn click2');//输出 btn click2
    event.stopPropagation();
}, false);

相关文章

  • JavaScript的事件机制详解

    【js事件详解】js事件封装函数,js跨浏览器事件处理机制 一、事件流 事件流描述的是从页面中接受事件的顺序。IE...

  • JS事件流机制

    事件流指的是 1.节点的捕获2.处理事件3.事件的冒泡 目前分为事件冒泡流,事件捕获流; 区别:1.事件冒泡流在事...

  • js事件深入学习

    JavaScript的事件机制包含,事件绑定、事件监听、事件委托(事件代理)等 js中的事件流 ① .冒泡:当下级...

  • js事件机制

    一、js事件机制三个阶段:事件捕获、事件目标处理函数、事件冒泡 js中事件执行的整个过程称之为事件流,分为三个阶段...

  • 事件处理机制

    Node.js事件触发对象有哪些方法? 详细讲讲Node.js事件机制是怎样的? Node.js事件机制和Java...

  • javascript 中的事件机制

    js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...

  • 20、jQuery 事件机制

    20、jQuery 事件机制 原生js事件与jQuery事件: (1)用原生的js给div注册事件 原生js注册相...

  • 事件基础(2)

    js事件的三个阶段:捕获,目标,冒泡 IE:IE事件流是事件冒泡流 Netscape事件流是事件捕获流 IE事件...

  • 性能优化——事件代理

    了解过JS的事件机制应该知道JS的事件触发后会有一个冒泡阶段。事件代理就是利用了这个机制。 我们考虑这样一个情况 ...

  • JS 事件(2)

    1、事件传播机制、阻止传播、取消默认事件、事件代理这些到底是什么呢? ①事件传播机制:JS事件传播包括三个阶段: ...

网友评论

    本文标题:JS事件流机制

    本文链接:https://www.haomeiwen.com/subject/iosbwftx.html