事件对象event,每当一个事件被触发的时候,就会随之产恒一个事件对象event,该对象中主要包含了关于该事件的基本属性,事件类型type(click、dbclick等值)、目标元素target(我的理解是事件源对象,即触发该事件的dom元素)等,以及一些与该事件相关的方法,取消事件默认行为preventDefault()、组织事件继续冒泡或捕获stopPropagation()等等,这里我只列举了,项目中我用到的属性和方法。

既然事件被触发,就随之产生了一个event对象,笔者在IE中测试了,不需要通过赋值即可使用,或许低版本的需要吧,火狐浏览器是需要对其进行赋值的,在这里我觉得需要养成一个习惯,多谢一行代码呗,每次在事件处理程序中使用event对象,都通过赋值的方式去使用:

var event = event||window.event;

其实,默认参数数组中第一元素就是event对象,也就是说,可以用数组元素赋值

var event = arguments[0];

type属性,应该是最容易理解的,事件类型,单击click,双击dbclick等等

target属性,触发事件的dom元素对象,我看到网上说target是火狐浏览器,srcElement是IE中的,但是我测试的结果是,在IE11中两个都可以使用了,一样的效果,但是火狐中只能使用target属性,浏览器之间的实现方式能不能有个通用的标准呢,兼容性很纠结呢,所以和event对象的获取一样,建议是通过赋值的方式去获取触发事件的dom对象:

var target = event.target||event.srcElement;

preventDefault()方法是用来取消默认事件行为的,比如超链接,点击超链接,会根据href属性,跳到另一个页面,之前在项目中,就遇到很多需要取消超链接的默认点击行为,在点击事件处理程序中,取消默认的事件行为,可以如下操作:

if(event.preventDefault){//判断该函数是否存在 event.preventDefault; }else{ returnValue = false; }

这样也实现了取消超链接的默认行为,其实在项目中,还看到别的同事使用的别的方式,也取消是默认的点击行为

也行

stopPropagation()方法直接就取消事件的继续冒泡或者捕获了,这个很实用的,如果父元素和子元素都绑定了某个相同类型的事件,比如都绑定了click事件,现在用户触发了一个事件,事件在捕获阶段被触发,针对父元素,则会继续向下捕获,进而触发子元素的事件,针对子元素,在冒泡阶段被触发,也同样因为冒泡行为,会触发父元素的事件,因此往往需要取消这种无意的触发,

if(event.stopPropagation){//判断是否存在 event.stopPropagation(); }else{ event.cancleBubble = true; }

转载于:https://www.cnblogs.com/2881064178dinfeng/p/7099806.html

javaScript中的事件对象event是怎样相关推荐

  1. Javascript中的事件对象和事件源

    什么是事件对象 之前说事件委托(事件代理)的时候,也提过事件对象和事件源,今天在这里简单总结一下. 当触发某个事件的时候,会产生一个事件对象event,这个对象里面包含与事件相关的所有信息. 事件对象 ...

  2. js中的事件对象event (获取元素的,x,y坐标)

    event的使用 获取元素的,x,y坐标 如图所示 当鼠标放在上面那个框上时获取其坐标,并且在下面框中显示 其实需要使用到鼠标移动事件 onmousemove event 事件对象中封装了当前事项相关 ...

  3. php event loop,理解javascript中的事件循环(Event Loop)

    背景 在研究js的异步的实现方式的时候,发现了JavaScript 中的 macrotask 和 microtask 的概念.在查阅了一番资料之后,对其中的执行机制有所了解,下面整理出来,希望可以帮助 ...

  4. JavaScript:事件对象Event和冒泡

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 绑定事件的两种方式 我们在上一篇文章 DOM操作详解 中已经讲过事件的概 ...

  5. java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)

    1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册<body onLoad="ready()"></body > ...

  6. 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)

    前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...

  7. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  8. js中获取事件对象的方法小结

    代码如下: var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式. 1,第一种添加事件的方式,直接在htm ...

  9. 浅谈JavaScript中的事件

    事件在javascript中是响应用户的一种基本操作,本文列举了两种javascript中的事件模型及其绑定的方式,希望能对你的学习带来一点帮助.这些都是非常基础的但或许其中有你所遗漏.(以下事件均针 ...

最新文章

  1. 给iOS开发者的React Native入门使用教程
  2. 异步消息队列zeromq实现服务器间高性能通信
  3. 坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题
  4. 香港2013迷你制汇节即将启幕
  5. 数据自治开放的软件开发和运行环境
  6. [label][JavaScript]七个JavaScript技巧
  7. 模型视图控制器mvc
  8. 为了异常安全(swap,share_ptr)——Effecive C++
  9. python三种等待方式_Python selenium 三种等待方式详解
  10. Linux MySQL 常见无法启动或启动异常的解决方案
  11. Thread.Sleep太久,界面卡死
  12. echrts多条折线
  13. rethat安装MySQL多例_SSM 使用 mybatis 分页插件 pagehepler 实现分页
  14. Python就是为了方便生活,比如看VIP电影
  15. android studio im源码,全开源即时通讯(IM)系统 高仿微信源码
  16. java毕业生设计超市自助结账系统的设计与实现计算机源码+系统+mysql+调试部署+lw
  17. MATLAB线性回归方程与非线性回归方程的相关计算
  18. linux/windows_powershell/bash_硬链接Hardlink/软连接(符号链接)创建以及注意事项/powershell_获取文件绝对路径/linux符号链接检查
  19. 数据可视化—绘制简单的折线图
  20. 用大数据看懂《速度与激情》的用车法则

热门文章

  1. JQuery EasyUI datagrid 复杂表头处理
  2. 【zt】我所经历的ERP项目的失败
  3. 通讯录_怎么恢复手机通讯录?最完整手机通讯录恢复方法大公开
  4. mysql 的connect 设置 无法点next_技术分享 | MySQL 使用 MariaDB 审计插件
  5. java 写文件 错误码_JAVA-读取文件错误1(错误)
  6. url 参数 后台 加密_一套拿来即用的后台管理系统,非常方便(附项目地址)
  7. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...
  8. php 变更 obj,php怎么将object转为string
  9. http的“无连接”指的是_【38期】一份tcp、http面试指南,常考点都给你了
  10. python删除类方法_python中向类中动态添加新特性及删除属性方法