html事件处理程序中,变量event中保存着事件对象

<button onclick="alert(ev.type)" id="btn">click</button>

1、DOM中的事件对象

无论是DOM0还是DOM2,事件处理程序中都会传入一个event对象

var btn=document.getElementById("btn");
btn.onclick=function(){
alert(1);
}
btn.addEventListener("click",function(ev){
alert(ev.type);
},false);

所有的事件都会有下表列出的成员:

在事件处理程序内部,对象this始终等于currentTarget的值,而target是事件实际目标

stopPropagation用于立即停止事件在DOM层中的传播:

var btn=document.getElementById("btn");
btn.onclick=function(event){
alert("btn");
event.stopPropagation();
}
document.body.onclick=function(event){
alert("body");//不会执行
}

2、IE中的事件对象

访问IE中的event对象的方式取决于指定事件处理程序的方法

2.1、DOM0级:

IE8-浏览器不识别传入的event对象,需要在事件处理函数内部声明

var btn=document.getElementById("btn");
btn.onclick=function(event){
alert(window.event.type);
}

IE9+浏览器以及其他高级浏览器则是两种方式都支持

2.2、attachEvent:

支持传入event参数

所有的事件都会有下表列出的成员:

this不一定指向目标元素,也可能指向全局(attachEvent),故用event.srcElement比较保险

兼容浏览器的事件处理对象:

var EventUtil={
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}
else if(element.attachEvent){
element.attachEvent('on'+type,handler);
}
else{
element['on'+type]=handler;
}
}, removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}
else if(element.detachEvent){
element.detachEvent('on'+type,handler);
}
else{
element['on'+type]=null;
}
}, getEvent:function(event){
return event ? event : window.event;
}, getTarget:function(event){
return event.target || event.srcElement;
}, preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}
else{
event.returnValue=false;
}
}, stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}
else{
event.cancelBubble=true;
}
} }

JS事件(二)事件对象的更多相关文章

  1. HTML 事件(二) 事件的注册与注销

    本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...

  2. JS基础(二)事件监听练习之table鼠标悬停行变色

    JS监听事件简单学习: [object].addEvent("事件类型","处理函数","冒泡事件或捕获事件");   [object].r ...

  3. vue事件获取当前对象

    一.事件传参 如点击事件 <div @click='click'> <div> <div @click='click_1('msg')'> <div> ...

  4. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  5. HTML 事件(三) 事件流与事件委托

    本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4 ...

  6. 从零开始的JS生活(二)——BOM、DOM与JS中的事件

    上回书说道,JS中变量.运算符.分支结构.循环和嵌套循环等内容.本回就由本K给大伙唠唠JS中的BOM.DOM和事件. 一."花心大萝卜"--BOM 1.震惊,FFF团为何对BOM举 ...

  7. js中的事件,内置对象,正则表达式

    [JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按 ...

  8. JS中的事件&对象

    一.JS中的事件 (一)JS中的事件分类 1.鼠标事件 click/dblclick/onmouseover/onmouseout 2.HTML事件 onload/onscroll/onsubmit/ ...

  9. JS基础--函数与BOM、DOM操作、JS中的事件以及内置对象

       前   言 絮叨絮叨 这里是JS基础知识集中讲解的第三篇,也是最后一篇,三篇JS的基础,大多是知识的罗列,并没有涉及更难得东西,干货满满!看完这一篇后,相信许多正在像我一样正处于初级阶段的同学, ...

  10. python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))

    一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...

随机推荐

  1. django学习自修第一天【简介】

    1. MVC框架 MVC框架的核心思想是解耦,降低各功能之间的耦合性,方便重构代码 (1)低耦合,高内聚 (2)高可扩展性 (3)向后兼容 2. MVT框架 V(视图):核心处理,接受请求,调用模型获 ...

  2. Git官方推荐用书

    用Git看了N多的Blog, 乱七八糟. 官方的推荐用书写得最好,最权威.还可以下载pdf.记录一笔. https://git-scm.com/book/zh/v2/

  3. windows 安装tensorflow

    原文知乎:https://zhuanlan.zhihu.com/p/25778703 前言 看到Rstudio中开始支持Tensorflow,本人是欣喜若狂的,同时TensorFlow官网从16年9月 ...

  4. chrome版本下载

    chrome 下载:https://www.chromedownloads.net/chrome64win/ chromedriver下载:http://chromedriver.storage.go ...

  5. [oracle] to_date() 与 to_char() 日期和字符串转换

    to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,& ...

  6. 在线制作css动画——CSS animate

    熟悉CSS的人都知道,CSS可以实现很多漂亮的动画,特别是它的在线功能,能够帮助人们解决很多制作动画的效果.今天特别推荐一个在线CSS插件功能——cssanimate,这个最大的特色就是以图形界面方式 ...

  7. C#开发轻松入门--笔记

    第一章 1-1 .NET简介 (02:11) 1-2 Visual Studio简介及安装 (03:23) 1-3 创建C#控制台程序 (04:14) 1-4 练习题 1-5 程序界面各部分介绍 (0 ...

  8. eolinker——分享项目只需两步

    登陆后打开项目概况 然后进入到分享项目界面,可根据自己的需求进行设置

  9. 第三十四天 UDP协议 并发编程

    一.今日内容 1.UDP协议 2.并发编程 操作系统的发展史 多道技术 进程 线程 IO模型 socketserver 案例:文件上传下载 元类 单例 logging filter 二.TCP半连接池 ...

  10. 2010 SD - ICPC D - Emergency

    D - Emergency Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit  ...