JavaScript 学习笔记(十五)

 更新时间:2010年01月28日 23:00:48   作者:  
事件是DOM(文档对象模型)的一部分。事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别。
事件
事件是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中的运算符讲解

    本文详细讲解了JavaScript中的运算符,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • JS中attr和prop属性的区别以及优先选择示例介绍

    JS中attr和prop属性的区别以及优先选择示例介绍

    这篇文章主要介绍了JS中attr和prop属性的区别以及优先选择,需要的朋友可以参考下
    2014-06-06
  • javascript 函数介绍

    javascript 函数介绍

    在JavaScript中,定义函数最常用的方法就是调用function语句。该语句是由function关键字构成的,也是很重要的函数复用。
    2009-09-09
  • IE的不合理设计和Bugs

    IE的不合理设计和Bugs

    IE的不合理设计和Bugs...
    2006-12-12
  • JavaScript数据类型详解

    JavaScript数据类型详解

    这篇文章主要介绍了JavaScript数据类型详解,本文详细讲解了JavaScript中有5种基本数据类型:Undefined、Null、Boolean、Number和String,需要的朋友可以参考下
    2015-04-04
  • 几种经典排序算法的JS实现方法

    几种经典排序算法的JS实现方法

    下面小编就为大家带来一篇几种经典排序算法的JS实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-03-03
  • 10分钟掌握XML、JSON及其解析

    10分钟掌握XML、JSON及其解析

    最近一段时间,个人综合了之前对XML、JSON的一些了解,参考了相关资料,再结合视频的代码,把自己的一些思考融入了这篇总结文档中,同时尝试用通俗诙谐的语言风格来阐述,期望能给感兴趣的读者带来帮助
    2016-10-10
  • Javascript中Event属性搜集整理

    Javascript中Event属性搜集整理

    Event属性想必大家并不陌生吧,本文整理了一些常用的,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-09-09
  • 聊一聊JavaScript作用域和作用域链

    聊一聊JavaScript作用域和作用域链

    这篇文章主要和大家一起聊一聊JavaScript作用域和作用域链,什么是JavaScript作用域和作用域链,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 深入探密Javascript数组方法

    深入探密Javascript数组方法

    这篇文章主要详细介绍了Javascript数组方法,十分的全面详尽,有需要的小伙伴可以来研究下,希望对大家能有所帮助
    2015-01-01

最新评论