JS事件流:
01、DOM级别和DOM事件


02、JS事件流:页面中接收事件的顺序
  事件冒泡阶段-->处于目标阶段-->事件捕获阶段 (事件捕获总发生在事件冒泡前面)
03、捕获:从外向里;冒泡:从里向外。外window-Document-html-body-box1-box2...里

<div class="box" id="box1">
<div class="box" id="box2">
<div class="box" id="box3">
<div class="box" id="box4">
<div class="box" id="box5">
<div class="box" id="box6">
点击
</div>
</div>
</div>
</div>
</div>
</div>

04、事件处理程序:就是响应某个事件的函数。事件处理程序是以on开头的,事件没有on
  HTML事件处理程序:<button onclick="alert('hello')"></button> --如果写函数就太麻烦了
  DOM0级事件处理程序:btn.onclick=function(){} --不能给一个事件绑定多个函数,后面的函数替代前面的(和相同HTML代码覆盖前面一样)
  DOM2级事件处理程序:btn.事件监听器(事件名,事件处理的函数,Boolean值:false默认冒泡 true捕获) 事件名无on ----绑定多个函数,但不支持IE
  IE事件处理程序:btn.事件监听器(on事件处理函数名称,事件处理函数) 事件处理函数名称有on  更早的IE只支持冒泡,所以没有第三个参数   -----IE
  跨浏览器的事件处理程序:(做兼容) -----兼容所有浏览器
    兼容:
      事件监听:btn.addEventListener()/btn.removeEventListener() IE:btn.attachEvent()/btn.deatchEvent()
05、事件对象:事件对象是用来记录事件发生时的相关信息的对象,只有在事件发生时才会产生,而且只能在事件处理函数中访问,事件触发完后就会销毁。
  事件对象的属性和方法如图:
  
  方法对IE不兼容:
    兼容:
      事件对象: event = event || window.event;
      事件对象方法preventDefault(): IE:window.event.returnValue=false
      事件对象方法stopPropagation():IE:window.event.cancelBubble=true
06、事件委托:原理就是利用事件冒泡,只指定一个事件处理程序,管理一类型的事件。核心是利用e.target属性
    兼容:
      事件对象target的接口: IE:event.srcElement

  本文只涉及概念的理解部分,代码部分没怎么写。

JS事件流、事件监听、事件对象、事件委托的更多相关文章

  1. Spring事件发布与监听机制

    我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. 目录 ...

  2. js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写

    js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写 一.总结 一句话总结:滚动事件scroll(),浏览器窗口调整监听resize(),思考好监听对象. 1.滚动事件scroll()的监听对象是 ...

  3. js监听transition过渡事件

    html <div id="mydiv"> </div> style #mydiv{ width:100px; height:100px; backgrou ...

  4. IOS之UI--自定义按钮实现代理监听点击事件

    前言: Objective-C提供的按钮监听事件的方法是 不含参数的监听方法 [button实例对象 addTarget:self action:@selector(func) forControlE ...

  5. 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用

    http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...

  6. javascript 原生方法监听DOM结构改变事件

    js原生方法监听DOM结构改变事件 document.addEventListener('DOMNodeInserted',function(){alert(1)},false);document.a ...

  7. JavaEE开发之Spring中的事件发送与监听以及使用@Profile进行环境切换

    本篇博客我们就来聊一下Spring框架中的观察者模式的应用,即事件的发送与监听机制.之前我们已经剖析过观察者模式的具体实现,以及使用Swift3.0自定义过通知机制.所以本篇博客对于事件发送与监听的底 ...

  8. spring 自定义事件发布及监听(简单实例)

    前言: Spring的AppilcaitionContext能够发布事件和注册相对应的事件监听器,因此,它有一套完整的事件发布和监听机制. 流程分析: 在一个完整的事件体系中,除了事件和监听器以外,还 ...

  9. 三种方式监听NGUI的事件方法

    NGUI研究院之三种方式监听NGUI的事件方法(七) NGUI事件的种类很多,比如点击.双击.拖动.滑动等等,他们处理事件的原理几乎万全一样,本文只用按钮来举例. 1.直接监听事件 把下面脚本直接绑定 ...

  10. Android监听点击事件实现的三种方法

    监听点击事件实现的三种方法:1.匿名内部类2.外部类3.直接实现接口 1.匿名内部类: package com.jereh.calculator; import android.content.Con ...

随机推荐

  1. Pku2978 Colored stones

    题目链接:Click here Solution: 状压dp,考虑\(f[i][j][k]\)表示当前到了第i个石头,颜色状态为j,选取的最后一个石头颜色为k时能够留下的石头的最大数量 转移也很好转移 ...

  2. Luogu P2309 loidc,卖卖萌

    题目链接:Click here 题目大意:给你一个长度为n的数串,问这个数串的sum为正数的子串个数 Solution: 我们先处理以下前缀和,记为\(s_i\) 则问题可以转化为求有多少对\(i,j ...

  3. 根据linux自带的JDK,配置JAVA_HOME目录

    在配置hadoop是,进行格式化hadoop的时候,出现找不到jdk 我用centos6.5是64位的, 发现本机有java ,就找了一下其位置 找到了jdk-1.7.0_75 which java ...

  4. Jmeter -- 参数化(函数助手和CSV数据文件配置)

    使用场景: 例如:模拟多用户登陆时 参数化两种方式: 方式一:使用函数助手 1. 创建包含多个登录名和密码的文件 可以在文本编辑器中输入,格式如下: username,passwordusername ...

  5. vim编辑器快捷键

    光标控制命令 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开 ...

  6. 本地运行aws lambda credential 配置 (missing credential config error)

    参照这篇文章 http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-sha ...

  7. legend3---阿里云如何多个域名指向同一个网站

    legend3---阿里云如何多个域名指向同一个网站 一.总结 一句话总结: 先寻求资料及文档,没有找到的话自己摸索一下就好 结论:多个域名都需要备案 二.阿里云如何多个域名指向同一个网站 当前情况 ...

  8. php中处理汉字字符串长度:strlen和mb_strlen

    PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数.对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍 ...

  9. React Native商城项目实战06 - 设置安卓中的启动页

    1.Main 目录下新建LaunchImage.js: /** * 启动页 */ import React, { Component } from 'react'; import { AppRegis ...

  10. PDF to PNG to PDF

    PDF to PNG to PDF PDF 2 PNG step 1, install PyMuPDF pip install pymupdf -i http://mirrors.aliyun.com ...