一、事件对象

  1、每个元素身上是天生存在的,不需要我们去定义,只需要我们给这个事件绑定一个方法,当事件触发的时候,就会执行这个方法

  2、事件绑定的方法:

    (1)、DOM0级绑定:div . onclick=function()  { }

    (2)、DOM2级绑定:div . addEventLister()  ||  div . attachEvent()

    二者的区别:

      (1)、onclick是这个元素私有的属性,而addEventLister()是公有的属性,从EventTarget(事件源)对象上继承来的

          IE低版本的attchaEvent是公有的

      (2)、div . onclick存在事件冒泡机制,没有捕获机制

div . addEventListener()可有冒泡,可有捕获

           div . attachEvent()只有冒泡机制

    attachEvent()和addEventListener()的区别

    (1)、attachEvent只用在Ie8以下,addEventListener()适合标准浏览器

    (2)、attachEvent的事件名带on,而addEventListener事件名不带on

    (3)、attachEvent函数里面的this是window,而addEventListener函数里面的this是指当前元素对象

    (4)、attachEvent只有冒泡没有捕获,addEventListener可有冒泡也可有捕获

二、Arguments

  每个函数都有一个arguments对象,它是这个函数所有参数构造的集合,它是一个数组

           

  上面的控制台是arguments数组中有一个元素叫mouseevent;

  所以,每个事件的方法中,浏览器都会给它一个参数叫mouseevent。我们所有的鼠标的消息都临时存在这个mouseevent

三、事件的兼容问题

  mouseevent有兼容性:

    

  Event对象的兼容性:

    clientX和clientY是浏览器鼠标到浏览器窗口左上角的距离位标

    pageX和pageY是鼠标到网页左上角的距离,但是Ie低版本没有这个属性

    在Ie怎么算pageY的值:用clientY+scrollTop

  事件源兼容性:

    事件源:点击那个元素,那个元素就是事件源

    标准浏览器的事件源是ev . target

    Ie6-8 没有这个属性,但是Ie有ev . scrElement

  阻止事件冒泡的兼容性:

    event . stoppropagation?event . stoppagation : event.cancelBubble=true;

  阻止事件默认行为的兼容性:

    event . prevenDefault?event . prevenDefault : event.returnvalue=false;

事件对象,arguments、事件的兼容问题的更多相关文章

  1. JS事件对象与事件委托

    事件对象 包含事件相关的信息,如鼠标.时间.触发的DOM对象等 js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下: document.getElementsByTa ...

  2. js跨浏览器事件对象、事件处理程序

    项目中有时候会不用jquery这么好用的框架,需要自己封装一些事件对象和事件处理程序,像封装AJAX那样:这里面考虑最多的还是浏览器的兼容问题,原生js封装如下:var EventUtil={ //节 ...

  3. JavaScript事件对象与事件的委托

    事件对象 包含事件相关的信息,如鼠标.时间.触发的DOM对象等 js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下: document.getElementsByTa ...

  4. JS事件流、事件监听、事件对象、事件委托

    JS事件流: 01.DOM级别和DOM事件 02.JS事件流:页面中接收事件的顺序 事件冒泡阶段-->处于目标阶段-->事件捕获阶段 (事件捕获总发生在事件冒泡前面) 03.捕获:从外向里 ...

  5. 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

    一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...

  6. 从零开始的全栈工程师——js篇2.21(事件对象 arguments 阻止事件默认行为兼容 事件委托 事件源对象)

    一.事件对象 1.常用的事件2.每个元素身上的事件都是天生存在的 不需要我们去定义 只需要我们给这个事件绑定一个方法 当事件触发的时候就会执行这个方法 3.事件绑定的写法 ①div.onclick=f ...

  7. JS 事件对象和事件冒泡

    1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象的获取方法: IE中可以window.event直接获取,而Firefox ...

  8. JavaScript的事件概述以及事件对象,事件流

    事件处理程序 JavaScript 事件对象是由访问 Web 页面的用户引起的一系列操作,例如:用户点击页面上的某个按钮或者鼠标移动到页面的某个图片上而产生一系列的互动的反馈. 我们通过为指定事件绑定 ...

  9. JavaScript事件对象与事件处理程序

    在学习之前建议请看一下事件流.事件冒泡.事件捕获 一.事件对象 事件对象:在DOM触发事件时,会产生一个事件对象event,这个事件对象包含着所有与事件相关的信息.既然event是事件对象,那么它必然 ...

  10. DOM事件处理程序-事件对象-键盘事件

    事件流: 事件流--描述的是从页面中接受事件的顺序 IE  ---事件冒泡流:即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档). Netsc ...

随机推荐

  1. camera调试命令

    问题:adb install -r Camera.apk 2864 KB/s (7603465 bytes in 2.592s)Failure [INSTALL_FAILED_UPDATE_INCOM ...

  2. 关于layer.open() 弹框的使用

    在用 layer.open() 追加渲染HTML的时候,完全看不到效果,皆因layui框架需要在最后用 form.render() 方法来渲染表单才可以看到效果,写法如下: <script> ...

  3. PICO 中关于时基ps3000aGetTimebase函数介绍

  4. rpm 命令|rpm 安装|rpm 卸载|rpm 使用|rpm 删除

    在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM) ...

  5. python数据分析笔记中panda(1)

    1 例子1 from pandas import read_csv; df = read_csv('H://pythonCode//4.1//1.csv') df 截图 1.1 修改表的内容编码 df ...

  6. eclipse neon 离线安装插件

    我的eclipse版本是4.6.3,以安装svn插件为例. 网上查到很多资料都是说找到eclipse目录下"plugins"和"features"文件夹,将下载 ...

  7. 死磕 java同步系列之volatile解析

    问题 (1)volatile是如何保证可见性的? (2)volatile是如何禁止重排序的? (3)volatile的实现原理? (4)volatile的缺陷? 简介 volatile可以说是Java ...

  8. E20190215-mt

    parenthesis n. 圆括号; 插入语; 插入成分; 间歇; (parentheses) individual  adj. 个人的; 个别的; 独特的;    n. 个人; 个体; priva ...

  9. phpstudy的mysql版本升级至5.7

    phpstudy安装的mysql版本一般都是5.5或5.4的,但是有时候做项目又必须用到mysql5.7版本,所以我们现在来看一下如何在phpstudy的环境下将mysql版本升级至5.7 温馨提醒: ...

  10. HDU3555【数位DP】

    入门...还在学习中,先贴一发大牛博客 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题目大意: 给一个数字n,范围在1~2^63-1,求1~ ...