1、  事件对象event

对于event,js的解释是Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。而jq的解释是事件处理(事件对象、目标元素的获取,事件对象的属性、方法等)在不同浏览器之间存在差异,jQuery在遵循W3C规范的情况下做了封装统一。

你的网页需要兼容不同的浏览器,除了样式的不同外,更致命的就是事件对象的差异。使用console.log(e),你就可以看到相关的参数。虽然jq已经对兼容进行过封装,但是我还是想进行了解,所以先看看关于js的事件对象。

(1) Js的事件对象event

A.通过event,可以获取到鼠标键盘这些设备的状态,如:

  altKey, ctrlKey, metaKey, shiftKey这四个布尔值,获得的是事件发生时‘ALT’‘CTRL’‘META’‘SHIFT’键的状态。

  PageX,PageY获得鼠标相对页面的位置。

  clientX,clientY获得的是鼠标相对浏览器的位置。

  screenX,screenY获得的是鼠标相对当前页面屏幕的位置

  offsetX,offsetY是鼠标在触发事件的元素中的位置。

  x,y等同screenX,screenY。

  button获得鼠标点击的是哪个键,在谷歌浏览器中0-左键,1-滚轮,2-右键(当然右键事件浏览器有默认事件,下面可能会提到自定义右键事件)。

B.除此之外,还有一些比较有用的属性

  cancelBubble,如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。和阻止冒泡相类似,但有所不同。

  fromElement,toElement主要用于mouseover 和 mouseout 事件

  keyCode,应该与keypress 事件,键盘事件有关,下文会研究。

  returnValue 可以阻止事件继续触发,比如超链接,表单提交,和return false相关但有所差别

  srcElement,target,触发事件的源头

  currentTarget,绑定监听器的事件,和target的区别,比如,一个是最先冒泡的元素,一个可以是冒泡过程的任何一个元素。

  timeStamp         返回事件生成的日期和时间。

  type  返回当前 Event 对象表示的事件的名称。

  bubbles     返回布尔值,指示事件是否是起泡事件类型。

  eventPhase       返回事件传播的当前阶段。

  initEvent() 初始化新创建的 Event 对象的属性。

  preventDefault()       通知浏览器不要执行与事件关联的默认动作。

  stopPropagation()     不再派发事件。

  isTrusted属性返回一个布尔值,表示该事件是否为真实用户触发。用户触发的事件返回true,脚本触发的事件返回false。

  stopImmediatePropagation()方法阻止同一个事件的其他监听函数被调用。

    如果同一个节点对于同一个事件指定了多个监听函数,这些函数会根据添加的顺序依次调用。只要其中有一个监听函数调用了stopImmediatePropagation方法,其他的监听函数就不会再执行了。

C.一些常用的兼容写法

  获得event对象兼容性写法

    var event = e||window.event

  获得target兼容型写法

    var target = event.target||event.srcElement

  阻止浏览器默认行为兼容性写法

    event.preventDefault ? event.preventDefault() : (event.returnValue = false);

  阻止冒泡写法

    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);

(2)  Jq的事件对象

一些常用的属性

  event.type:获取事件的类型,触发元素的事件类型

  event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标,可以确定元素在当前页面的坐标值,是以页面为参考点,不随滑动条移动而变化

  event.target:获取触发事件的元素

   js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;

    this和event.target都是dom对象,可以转换为jquery对象:$(this)和$(event.target)

  event.which:获取在鼠标单击事件中鼠标的左、中、右键(左键1,中间键2,右键3),在键盘事件中键盘的键码值

  event.currentTarget : 获取冒泡前的当前触发事件的DOM对象, 等同于this

  event.preventDefault() :阻止默认行为,可以用 event.isDefaultPrevented() 来确定preventDefault是否被调用过了

  event.stopPropagation() :阻止事件冒泡,事件是可以冒泡的,为防止事件冒泡到DOM树上,不触发任何前辈元素上的事件处理函数,可以用 event.isPropagationStopped() 来确定stopPropagation是否被调用过了

参考:

https://www.cnblogs.com/wuln/p/6251486.html

https://www.cnblogs.com/songyaqi/p/5204143.html

https://blog.csdn.net/knock_me/article/details/79646105

https://blog.csdn.net/weixin_41342585/article/details/80659736

https://blog.csdn.net/baihuaxiu123/article/details/53148780(重要)

https://blog.csdn.net/u012528184/article/details/41724275

(returnVlaue=false和reture false)

Javascript和jquery事件--事件对象event的更多相关文章

  1. 【JavaScript】jQuery绑定事件

    jquery中直接绑定事件:只能用在程序中一开始就存在的html代码 目标元素.click(function(){ }) jquery中间接绑定事件: 如果目标元素是js生成的,则需要间接绑定事件,用 ...

  2. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  3. 第一百七十节,jQuery,事件对象,event 对象,默认行为,冒泡

    jQuery,事件对象,event 对象,默认行为,冒泡 学习要点: 1.事件对象 2.冒泡和默认行为 JavaScript 在事件处理函数中默认传递了 event 对象,也就是事件对象.但由于浏览器 ...

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

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

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

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

  6. JavaScript Event 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw

    参考资料: 慕课网 DOM事件探秘    js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个事件,该事件会驱动某些函数 ...

  7. javaScript中的事件对象event

    事件对象event,每当一个事件被触发的时候,就会随之产恒一个事件对象event,该对象中主要包括了关于该事件的基本属性,事件类型type(click.dbclick等值).目标元素target(我的 ...

  8. javaScript中的事件对象event是怎样

    事件对象event,每当一个事件被触发的时候,就会随之产恒一个事件对象event,该对象中主要包含了关于该事件的基本属性,事件类型type(click.dbclick等值).目标元素target(我的 ...

  9. 从零开始学习jQuery (五) 事件与事件对象

    本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...

随机推荐

  1. HDU 4173 Party Location(计算几何,枚举)

    HDU 4173 题意:已知n(n<=200)位參赛选手的住所坐标.现要邀请尽可能多的选手来參加一个party,而每一个选手对于离住所超过2.5Km的party一律不去,求最多能够有多少个选手去 ...

  2. 知名游戏开发者称 C++ 是一种非常糟糕、可怕的语言(C++不是一门可怕的语言,可怕的是一群没有耐心的程序员来使用C++这门语言)

    抛出一个问题:C++ 真的很可怕吗? 2016 年底,C++ 之父 Bjarne Stroustrup 在一次采访中表示:”C++ 让编程专家很容易编写出复杂.高性能.低资源消耗的代码,但不足以成为广 ...

  3. 用YourAPP开发网络状态提醒应用

    如今的通信真是方便,走到哪里都有网络.Wifi的利用已经到了很普及的程度.即使走到没有wifi信号的地方,利用手机信号也能上网.(若是连手机信号都没有,那就没办法了) 智能手机的使用也大慷慨面了各个年 ...

  4. python-openpyxl安装

    今天在安装openpyxl的时候,一直提示错误,后来才发现仅仅安装它还不够,还需要其他两个库的支持1.安装jdcal2.安装et_xmlfile这两个库安装的方法,都是直接在命令行下面,进入库文件se ...

  5. elasticsearch index 之 create index(二)

    创建索引需要创建索引并且更新集群index matedata,这一过程在MetaDataCreateIndexService的createIndex方法中完成.这里会提交一个高优先级,AckedClu ...

  6. POJ 2039 Floyd

    句意理解题 解释输入好啦: 第一行n个数 m场电影 随后m行 每行的第一个数 代表 有k奶牛在这个电影中出现过 随后k个数 是奶牛的编号 如果两头奶牛在同一个电影中出现过 相互度为1 奶牛们的相互度可 ...

  7. 突破极限 解决大硬盘上安装Unix新思路

    一.问题提出 硬盘越做越大,然我喜欢让我忧.10年前就遇到过在586电脑BIOS不认识超过8.4G容量硬盘的问题,以及Windows Nt操作系统不认大硬盘(容量超过8.4G)的问题,对于Linux ...

  8. RelativeLayout-代码中成员控件width height

    今天需要在代码中动态的设置一个textview的width跟height属性,记录下来. textview在xml中的布局如下 <RelativeLayout android:layout_wi ...

  9. jQuery post 传递 iframe

    //使用POST链接iframe function doOpenPostIfrm(url, args, iframe) { //创建一个隐藏表单 var _form = $("<for ...

  10. MyEclipse 2016 安装/破解

    MyEclipse2016 C1 已经出现了!感觉好像不错的样子! 不多说了,开整... 好熟悉的界面,点击Next! 如上图标注1所示,请修改安装目录! 根据自己的喜好可以选择不同的版本,也可以安装 ...