第十七章 事件处理

1、事件处理程序或事件监听程序是处理或响应事件的函数。

2、事件对象是与特定事件相关且包含有关该事件详细信息的对象。

3、响应通过键盘改变焦点的表单元素在得到和失去焦点时会分别出发focus和blur事件。

4、focus和blur事件不会冒泡,但其他所有表单事件都可以。IE定义了focusin和focusout事件可以冒泡。

5、DOMContentLoaded和readystatechange是load事件的替代方案,当文档和其元素为操作就绪,但外部资源完全加载完毕之前,浏览器就会尽早触发它们。

6、单击鼠标右键时,浏览器通常会显示上下文菜单。在显示菜单之前,它们通常会出发contextmenu事件,而取消这个事件就可以阻止菜单的显示。

7、mouseover和mouseout事件会冒泡,而IE提供的mouseenter和mouseleave不会冒泡。

8、当keydown事件产生可打印字符时,在keydown和keyup之间会出发另外一个keypress事件。当按下键重复产生字符时,在keyup事件之前可能产生很多keypress事件。keypress是较高级的文本事件,其事件对象指定产生的字符而非按下的键。

9、HTML5包含了对离线Web应用的支持。相关的两个最重要事件是offline和online,无论何时浏览器失去获得到网络连接时都会在Window对象上出发它们。

10、注册事件处理程序最简单的方式就是通过设置事件目标的属性为所需事件处理程序函数。缺点是每个事件目标对于每种事件类型最多只能有一个处理程序。

11、在HTML标签中设置事件处理程序不应该用大括号包围且不用function关键字。避免使用。

12、addEventListener()方法最后一个参数是一个布尔值,通常传入false,如果传入true,那么函数将注册为捕获事件处理程序。

13、IE中使用attachEvent()注册的事件处理程序作为函数调用,它们的this值是全局对象。可用call()对this进行更改。

14、事件处理程序在定义时的作用域而非调用时的作用域中执行,并且它们能存取那个作用域中的任何一个本地变量。通过HTML属性来注册事件处理程序是一个例外,它们被转换为能存取全局变量的顶级函数而非任何本地变量。

15、通常情况下,返回值false就是告诉浏览器不要执行这个事件相关的默认操作。

16、事件处理程序的调用顺序:1、通过设置对象属性或者HTML属性注册的处理程序优先调用。2、使用addEventListener()注册的处理程序按照它们的注册顺序调用。3、attachEvent()可能按照任何顺序调用。

17、事件冒泡为在大量单独文档元素上注册处理程序提供了替代方案,即在共同的祖先元素上注册一个处理程序来处理所有的事件。(事件委托/事件代理)

18、发生在文档元素上的大部分事件都会冒泡,值得注意的例外是focus、blur、scroll事件。文档元素上的load事件会冒泡,但它会在Document对象上停止冒泡而不会传播到window对象,只有当整个文档都加载完毕时才会出发Window对象的load事件。

19、事件冒泡是事件传播的第三个阶段。目标对象本身的事件处理程序调用是第二个阶段。第一个阶段甚至发生在目标处理程序调用之前,成为捕获阶段。在目标对象本身上注册的捕获事件处理程序不会被调用。

20、阻止事件传播:stopPropagation()方法,IE事件对象有一个cancelBubble属性,设置为true能阻止事件进一步传播。

js-权威指南学习笔记17的更多相关文章

  1. js权威指南---学习笔记02

    1.JS只有函数作用域,没有块级作用域这个概念: 它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作:在原先位置执行赋值操作: 2.声明的全局变量,相当 ...

  2. js权威指南学习笔记(四)对象

    1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如:       5 5   ...

  3. js权威指南学习笔记(三)语句

    1.声明语句 如果用var声明的变量没有初始化,那么这个变量的值会被初始化为undefined. 函数声明语句的语法如下:       4 4           1 console.log(func ...

  4. js权威指南学习笔记(二)表达式与运算符

    1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如:       2 2           1 var arr = [1,,,,,6]; 2 ...

  5. js权威指南学习笔记(一)类型、值和变量

    1.数据类型:原始类型(primitive type) 和对象类型(object type) 原始类型包括数字.字符串和布尔值: 除数字.字符串.布尔值.null(空).undefined(未定义), ...

  6. js权威指南---学习笔记01

    1.当函数赋值给对象的属性时,就变为了方法:2.被零整除不报错,只会返回无穷大(Infinity)或者负无穷大.例外:零除以零等于非数字(NaN).3.NaN与任何值都不相等! 4.Javascrip ...

  7. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

  8. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  9. 《JS权威指南学习总结--开始简介》

    本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...

  10. HTTP权威指南-学习笔记

    目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...

随机推荐

  1. 关于rpm的命令

    我是从这里学的:https://www.cnblogs.com/picaso/archive/2012/07/02/2573748.html 软件的安装时操作系统管理的基础,与Windows不同,Li ...

  2. 用xshell ssh连接测试服务器时候出的问题

    问题还原:用ssh连接测试服务器 给我结结实实报了个错 FBIwarning: ------------------------------------------------------------ ...

  3. Unity色子的投掷与点数的获得(详解)

    前几天需要一个色子的投掷并且获得朝上点数的Unity脚本,在网上找了很多,都是一个模子刻出来的. 对于2018版的我来说,网上找的都是很早就弃用了的老版本. 好不容易能运行了,结果并不理想,于是又突发 ...

  4. 直接插入排序实现(Java)

    直接插入排序介绍 直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的.记录数增1的有序表.     怎么理解呢?就是将n个待排序的元素看成一个有序表和一个无序表,开始时有序 ...

  5. POJ 1046

    #include<iostream> using namespace std; #define MAXN 16 #define inf 100000000 struct node { in ...

  6. Label Propagation Algorithm LPA 标签传播算法解析及matlab代码实现

    转载请注明出处:http://www.cnblogs.com/bethansy/p/6953625.html LPA算法的思路: 首先每个节点有一个自己特有的标签,节点会选择自己邻居中出现次数最多的标 ...

  7. .gitignore释疑

    自己总结: *.a--匹配任意路径下的.a文件 a/--匹配任意路径下的a文件夹 a/*--匹配根目录下的文件夹a下的任意文件(等同于 /a/* 或 /a/)  ----一般情况下不会有这种写法 /a ...

  8. 图解安卓-c++开发-通过java 调用c++ jni的使用

    接着上一节 ,很多事情用java做,效率要差一点(尤其是游戏),所以要用c++来实现,那么java如何调用c++ 首先建议一个工程 HelloJni如下图: 按照默认的配置下一步,直到完成 . 如下图 ...

  9. 从raft论文出发

    介绍 Raft是一种为了管理复制日志的一致性算法.为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举.日志复制和安全性.同时它通过实施一个更强的一致性来减少需要考虑的状态的数 ...

  10. 笔记三:python乱码深度剖析一

    一:学习内容 python编码转换 python乱码原因深入解析 二:python编码转换 1. Python内部字符串一般都是Unicode编码,代码中字符串的默认编码与代码文件本身的编码是一致的. ...