触发DOM上的事件时会产生一个事件对象event。

  event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息。

  event对象会传入到事件处理程序中。

一、DOM 中的event对象的主要属性和方法

  1、属性:type 被触发事件的类型  currentTarget其事件处理程序当前正在处理事件的那个元素  target事件的目标

  this  currentTarget  target的区别

  eventPhase表明事件正处于哪个阶段,捕获阶段为1,处于目标对象上为2,冒泡阶段为3

  1. //this始终等于currentTarget的值,而target只指事件的真正目标
  2. var btn = document.getElementById("myBtn");
  3. btn.onclick=function(event){
  4. alert(event.currentTarget===this);//true
  5. alert(event.target===this);//true
  6. }
  7.  
  8. //target是指事件的真正目标
  9. document.body.onclik=function(event){
  10. alert(event.currentTarget===document.body);//true
  11. alert(this===document.body)//true
  12. alert(event.target===document.getElementById("mtBtn"));//true
  13. }

  2、方法:preventDefault():取消特定事件的默认行为如链接,只有cancelable设置为true时,才可以应用此方法

  1. var link = document.getElementById("myLink");
  2. link.onclick = function(event){
  3. event.cancelable=true;
  4. event.preventDefault();
  5. }

    stopProgration()方法:用于立即停止事件在DOM层次中的传播,即取消进一步的事件捕获或冒泡

  1. var btn=document.getElementById("myBtn");
  2. btn.onclick = function(event){
  3. alert("Clicked");
  4. event.stopPropagation();
  5. }
  6.  
  7. document.body.onclick=function(event){
  8. alert("Body clicked");//不会执行,事件被阻断了
  9. }

二、IE 中的event对象与不同,下面是一个兼容方案

  1. var EventUtil = {
        //添加事件
  2. addHandle:function(element,type,handle){
  3. if(element.addEventListener){
  4. element.addEventListener(type,handle,false);
  5. }else if(element.attachEvent){
  6. element.attachEvent("on"+type,handle);
  7. }else{
  8. element["on"+type]=handle;
  9. }
  10. },
  11.     //移除事件
  12. removeHandle:functioon(element,type,handle){
  13. if(element.removeEventListener){
  14. element.removeEventListener(type,handle,false);
  15. }else if(element.detachEvent){
  16. element.detachEvent(type,handle);
  17. }else{
  18. element["on"+type]=null;
  19. }
  20. },
  21. //获取事件对象
  22. getEvent:function(event){
  23. return event?event:window.event; //IE浏览器获取event对象的方式是window.event
  24. },
        //获取目标对象
        getTarget:function(event){
          return event.target||evetn.srcElement;
        }
  25. //阻止默认行为
  26. preventDefault:function(event){
  27. if(event.preventDefault){
  28. event.prventDefault();
  29. }else{
  30. event.returnValue=false; //IE浏览器特有的方式
  31. }
  32. },
  33. //停止事件传播
  34. stopPropagation:function(event){
  35. if(event.stopPropagation){
  36. event.stopPropagation();
  37. }else{
  38. event.cancelBubble=true; //IE浏览器特有的方式
  39. }
  40. }
  41. }

  二、事件分类

DOM事件对象的更多相关文章

  1. HTML DOM 事件对象

    HTML DOM 事件对象 由 youj 创建,小路依依 最后一次修改 2016-08-04 HTML DOM 事件 HTML DOM 事件 HTML DOM 事件允许Javascript在HTML文 ...

  2. JS HTML DOM 事件对象(onclick、onmouseenter)

    HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序. 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮). HTML DOM 事件 DOM:  ...

  3. DOM事件对象用法

    分为三个阶段:事件捕获阶段.目标阶段.事件冒泡阶段. 事件捕获老版本浏览器(IE<=8)不支持,但是事件冒泡可以放心使用. 事件处理程序 一共四类写法,基本都见过,看下写法就知道怎么回事儿了. ...

  4. JavaScript DOM事件对象的两个小练习 | 学习内容分享

    Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 本文用于记录个人学习过程 ...

  5. HTML DOM 事件对象 ondragend 事件

    学习网站:http://www.runoob.com/jsref/event-ondragend.html 定义和用法 ondragend 事件在用户完成元素或首选文本的拖动时触发. 拖放是 HTML ...

  6. 深入学习jQuery事件对象

    × 目录 [1]获取 [2]事件类型 [3]事件目标[4]当前元素[5]事件冒泡[6]默认行为[7]命名空间[8]返回值[9]键值 前面的话 在触发DOM上的某个事件时,会产生一个事件对象event, ...

  7. JavaScript中的事件对象

    JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...

  8. Javascript高级编程学习笔记(59)—— 事件(3)事件对象

    事件对象 在触发DOM‘事件时,会产生一个事件对象 event 该对象包含着所有与事件有关的信息 所有浏览器都支持 event 对象但是支持的方式有所不同 DOM事件对象 兼容DOM的浏览器会将eve ...

  9. d3.js:数据可视化利器之 交互行为:响应DOM事件

    selection.on:事件监听操作符 on()操作符可以添加或移除选择集中每个 DOM元素的事件监听函数: selection.on(type[,listener[,capture]]) 参数ty ...

随机推荐

  1. Hyperion Essbase BusinessRule 函数学习--2

    @AVG Returns the average of all values in expList. [返回表达式列表的平均值] Syntax @AVG (SKIPNONE | SKIPMISSING ...

  2. 关于继承扩展ASP.NET控件(以Textbox为例)

    以下是一个相对简陋的扩展, 主要是针对金额显示的Textbox扩展. using System; using System.Collections.Generic; using System.Linq ...

  3. Eclipse 常用快捷键 (动画讲解)(转载)

    http://www.cnblogs.com/TankXiao/p/4018219.html#fix 很详细呀/

  4. Android项目能运行,上传svn后再下载却不能运行

    今天遇到一个比较奇怪的问题,android项目上传到svn之前,可以运行,但是上传到svn后再check, 就出错. 搜索了一下,发现真的解决了问题. svn 不知道是出于什么原因,不能上传.so文件 ...

  5. dojo事件

    dojo.connect 和 dojo.disconnect /*建立连接*/ dojo.connect(/*Object|null*/ obj, /*String*/ event, /*Object ...

  6. Oracle sql语言模糊查询--like后面的通配符

    关于like后面的条件,Oracle提供了四种匹配模式: 1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FR ...

  7. Android图片下载到本地,系统图库不显示

    可能大家都知道我们下载图片到Android手机的时候,然后调用系统图库打开图片,提示"找不到指定项". 那是因为我们插入的图片还没有更新的缘故,所以只要将图片插入系统图库,之后发条 ...

  8. C++ 动态绑定

    1.为每一个包含虚函数的类设置一个虚表(VTABLE) 每当创建一个包含有虚函数的类或从包含虚函数的类派生一个类时,编译器就会为这个类创建一个VTABLE.在VTABLE中,编译器放置了这个类中,或者 ...

  9. Oprofile安装与使用探索

    本文分别尝试了oprofile在x86平台和龙芯平台上的安装 一:oprofile的安装与配置(intel+ubuntu12.04) I. Oprofile 安装 Oprofile 包含在 Linux ...

  10. 使用ICE进程间通信时,IP和端口的选择

    使用ICE进程间通信时,IP和端口的选择 服务器在创建时使用的Endpint格式为 tcp  -h IP地址 -p 端口 1.IP地址的选择 如果填某个网卡的地址,则只在这个地址上监听,客户端必须连这 ...