js高级程序设计笔记——13章事件
来源:互联网 发布:android源码编译后rom 编辑:程序博客网 时间:2024/05/20 19:47
13.1 事件流
13.1.1 事件冒泡
在ie下 事件流叫做事件冒泡 顺序是由最具体的元素接收,然后不断的向上传播到较不具体的节点
例如 你点击了某个div 那这个click事件就会按如下顺序传播
div->body->document->window; 基本游览器都支持;
13.1.2 事件捕获
事件捕获的顺序是 window->document->body->div;
推荐使用事件流;
如图是两者的顺序
13.2 事件处理程序
事件可以是click load mouseover等,都是事件的名称。
事件处理程序则是响应某个事件的函数,或者叫事件侦听器;
13.2.2 DOM0级事件处理程序
0级DOM
分为2个:一是在标签内写onclick事件
二是在JS写onlicke=function(){}函数
1)
<input id="myButton" type="button" value="Press Me" onclick="alert('thanks');" >
2)
document.getElementById("myButton").onclick = function () { alert('thanks');}
2级DOM
只有一个:监听方法,有两个方法用来添加和移除事件处理程序:addEventListener()和removeEventListener()。
它们都有三个参数:第一个参数是事件名(如click);
第二个参数是事件处理程序函数;
第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用。
- addEventListener():可以为元素添加多个事件处理程序,触发时会按照添加顺序依次调用。只能用removeEventListener()来移除添加的事件;
- removeEventListener():不能移除匿名添加的函数。
document.getElementById("myTest").attachEvent("onclick", function(){alert(1)});
//等价于
document.getElementById("myTest").addEventListener("click", function(){alert(1)}, false);
var btn=document.getElementById('btn');
btn.addEventListener("click",function(){
alert(this.id);
},false);
btn.removeEventListener("click",function(){
alert(this.id);
},false) //无效
removeEventListener传入的参数与addEventListener传入的参数是完全不同的匿名函数。
改成如下则有效果
var headler=function(){
alert(this.id);
}
btn.addEventListener("click",headler,false);
btn.removeEventListener("click",headler,false);
只有2级DOM包含3个事件:事件捕获阶段、处于目标阶段和事件冒泡阶段
<span> <a></a></span>
点击a后capturing(捕捉)阶段事件传播会从document-> span->a,然后发生在a,最后bubbling(冒泡)阶段事件传播会从a->span->document 。
- js高级程序设计笔记——13章事件
- JS高级程序设计13-事件
- js高级程序设计笔记8--事件
- 高级JS内容——JavaScript高级程序设计笔记
- js 高级程序设计笔记
- JS高级程序设计-笔记
- 事件——JavaScript高级程序设计笔记(10)
- 《JavaScript高级程序设计》笔记——chapter13 事件
- js高级程序设计学习笔记——基本概念
- 笔记:js高级程序设计第四章
- 《Javascript高级程序设计》第十三章——事件学习笔记(待续)
- javascript高级程序设计---事件笔记
- Javascript高级程序设计--事件笔记
- js高级程序设计笔记1
- JS高级程序设计读书笔记(第十三章 事件)
- JS高级程序设计读书笔记——第3章
- JS高级程序设计——Function类型
- JS高级程序设计——BOM
- Arrays.binarySearch
- python 列表
- 使用c++11新特性实现线程池
- 微信支付类
- 最近比较忙
- js高级程序设计笔记——13章事件
- Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
- Gson笔记
- 学习shiro代码报错:Line argument must contain a key and a value. Only one string token was found.
- 牛客网_华为机试_005_进制转换
- 2017.7.05 学习记录 Servlet02
- 自适应分辨率引用单元
- 快速开发android应用1-服务器搭建
- PAT程序设计考题——甲级1066(Root of AVL Tree ) C++实现