JavaScript 学习笔记(十五)


Posted in Javascript onJanuary 28, 2010

事件
事件是DOM(文档对象模型)的一部分。事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别。
一、事件流
1、冒泡型事件
IE上的解决方案就是冒泡型事件,它的基本思想是从最特定的目标到最不特定的事件目标(document对象)的顺序触发。
过程:按照DOM的层次结构像水泡一样不断上升至顶端。(从里面的div触发事件再到body,到html最后直到document最顶端)。
2、捕获型事件
可以说跟冒泡是正好相反的,事件从最不精确的对象开始触发,然后直到最精确。
3、DOM事件流
DOM同时支持以上两种事件模型,其中捕获型事件先发生,从document对象开始,最后在document对象结束。
二、事件监听函数
1、IE
每个函数和window对象都有两个方法:
attachEvent()方法:附加事件处理函数
[Object].attachEvent(“事件名”,处理函数fnHandler);
该方法有两个参数。
var fnClick = function() {
alert("你点击了ID为div1的DIV");
}
var oDiv = document.getElementById("div1");
oDiv.attachEvent("onclick", fnClick);
可以附加多个处理函数。
detachEvent()方法:分离移除事件处理函数
2、DOM
addEventListener()方法:分配附加事件处理函数
[Object]. addEventListener (“事件名”,处理函数fnHandler,Boolean);
该方法有三个参数(“事件名”,“分配的函数”,处理函数是冒泡阶段还是捕获阶段)
如果事件处理函数是用于捕获阶段,则第三个参数是true,用于冒泡阶段则为false
var fnClick = function() {
alert("Clicked!");
}
var oDiv = document.getElementById("div");
oDiv.addEventListener("click", fnClick, false);
oDiv.removeEventListener("click", fnClick, false);
可以附加多个处理函数。
removeEventListener()方法:移除事件处理函数
三、事件对象
包含三个方面的信息:
1、引起事件的对象:IE中就是window.event,DOM中是处理函数的为唯一参数;
2、事件发生时的鼠标信息;
3、事件发生时的键盘信息。
IE事件对象
在IE中,事件对象是window对象的一个属性event。也就是说,事件处理函数必须这样访问事件对象:
oDiv.onclick = function() { var oEvent = window.event; }oDiv.onclick = function(){ var oEvent = window.event;}
尽管是window对象的属性,event对象还是只能在事件发生时访问。所有的事件处理函数执行完毕后销毁。
DOM标准的事件对象
event对象必须作为唯一的参数传给事件处理函数。所以,在DOM兼容的浏览器(如Mozilla,Safari和Opera)中访问事件对象,要这么做:
oDiv.onclick = function() {
var oEvent = arguments[0];
}
//也可以这样
oDiv.onclick = function(oEvent) {
//.....
}

Javascript 相关文章推荐
javascript动态加载三
Aug 22 Javascript
通过length属性判断jquery对象是否存在
Oct 18 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
jQuery实现动画效果的简单实例
Jan 27 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
JavaScript实用代码小技巧
Aug 23 Javascript
vue实现文字加密功能
Sep 27 Javascript
JavaScript常用工具函数大全
May 06 Javascript
Extjs 几个方法的讨论
Jan 28 #Javascript
JavaScript 判断判断某个对象是Object还是一个Array
Jan 28 #Javascript
图像替换新技术 状态域方法
Jan 28 #Javascript
javascript innerText和innerHtml应用
Jan 28 #Javascript
使用JavaScript库还是自己写代码?
Jan 28 #Javascript
js或css实现滚动广告的几种方案
Jan 28 #Javascript
jquery中的sortable排序之后的保存状态的解决方法
Jan 28 #Javascript
You might like
PHP dirname简单使用代码实例
2020/11/13 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
Vue渲染函数详解
2017/09/15 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
python文字转语音实现过程解析
2019/11/12 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
工程造价自荐信
2013/10/09 职场文书
遗产继承公证书
2014/04/09 职场文书
房屋继承公证书
2014/04/10 职场文书
合作经营协议书范本
2014/04/17 职场文书
师范生自荐信模板
2014/05/28 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
病危通知单
2015/04/17 职场文书