谈谈事件对象-event

在触发DOM上的某个事件时,会产生一个事件对象event,这个对象包含着所有与事件有关的信息,包括导致事件的元素,事件类型以及其他与特定事件相关的信息.

DOM中的事件对象

兼容DOM的浏览器会将一个event传入事件处理程序中

//html
<body>
<input id = 'btn' type = 'button'/>
</body>

//css
var btn  = document.getElementById('btn');
btn.onclick = function(event){
  console.log(event);
  console.log(event.type);
}

event输出是一个对象,并且非常庞大,在此截取一部分如下

event

event.type输出是一个字符串'click',typeevent的一个属性,表示事件类型

  • 常见的event属性/方法
    1.cancelable:是否可以取消事件的默认行为
    2.bubbles:事件是否冒泡
    3.currentTarget:/事件处理程序当前正在处理的那个元素
    4.target:事件的实际目标
    5.type:被触发的事件类型
    6.eventPhase:表示事件处理程序的阶段,1表示捕获2表示处于目标3表示冒泡阶段
    7.preventDefault():取消事件的默认行为,如果cancelable属性是true,则可以使用这个方法
    8.stopPropagation():取消事件的进一步捕获或者冒泡,如果bubbles为true则可以调用这个方法

只有在事件处理程序执行阶段,event才存在,一旦执行完成,event就会被销毁

IE中的事件对象

与访问DOM中的事件对象不同,访问IE中的event对象有几种不同的方式,取决于指定时间处理程序的方法

  • 使用DOM0级方法添加事件处理程序
//html
<body>
<input id = 'btn' type = 'button'/>
</body>

//css
var btn  = document.getElementById('btn');
btn.onclick = function(){
  var event = window.event; //通过Window对象获取event对象
  alert(event.type);//'click'
}
  • 使用attachEvent()方法添加的事件处理程序
var btn = document.getElementById('btn');
btn.attachEvent('onclick',function(event){//可以通过window.event访问,也可作为参数传递
   alert(event.type);
});
  • 常见的属性和方法
    1.cancelBubble:默认值为false,设置为true就可以取消事件冒泡
    2.returnValue:默认值为false,设置为true就可以取消事件的默认行为
    3.srcElement:事件的目标
    4.type:被触发的事件类型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 1,297评论 3 11
  • 以下文章为转载,对理解JavaScript中的事件处理机制很有帮助,浅显易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy阅读 3,080评论 1 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,123评论 19 139
  • 声明:本文来源于http://www.webzsky.com/?p=731我只是在这里作为自己的学习笔记整理一下(...
    angryyan阅读 7,141评论 1 6
  • 你所做的一切 都只是、只是证明你的存在 那么你不要来 不要来 让我慢慢等待 花儿总会开
    阿宅大人冬安阅读 272评论 2 4