dom事件与event对象总结
1 事件:就是文档或浏览器窗口中发生的一些特定的交互瞬间。
tips:js和xhtml的交互是通过当用户或浏览器操作网页时发生的事件来处理的。
1.1 事件流:即事件的顺序。
事件冒泡:事件从事件发生的目标最内部开始触发,向上触发到最外部(document对象)。
事件捕获:事件捕获正好与冒泡相反。它的事件触发顺序是从最外层的对象(document对象)到最里层的对象。
DOM事件流:dom同时支持事件捕获和事件冒泡,但事件捕获先发生。
1.2 事件处理程序/监听器
定义:为响应一个事件而被调用的函数称为事件处理程序(DOM中叫事件监听器)。
两种指派方式:1.传统事件处理程序指派方法。(DOM0) 2.现代事件处理程序指派方法。
1.传统事件处理程序指派方法。(DOM0):为一个事件指派一个事件处理程序。
1)在js中指定事件处理程序。
eg:
var odiv = document.getElementById("div1");
odiv.onclick = function(){
alert("我被点击了"); //事件处理程序的名称必须全部小写。
}
tips:1.事件处理程序的名称必须全部小写。
2.在绑定事件处理程序到事件属性时,只能引用函数的名称,后面不能加括号。若加括号则表示立即执行函数。
3.不管函数是如何定义的,必须确保在XHTML元素被添加到DOM之前。登记事件处理程序。即js写到后面,保证节点已经加载定义了。
2.现代事件处理程序指派方法。:为一个事件指派多个事件处理程序。 //有兼容性问题。
1)IE浏览器
attachEvent()用于将一个事件处理程序绑定到一个事件。
detachEvent()用于解除事件处理程序的绑定。
[object].attachEvent(“事件处理程序的名称”,函数)
[object].detachEvent(“事件处理程序的名称”,函数)
2)DOM //即是DOM2
DOM中使用addEventListener()和removeEvenList() 方法完成事件处理程序指派和删除的任务。
有三个参数 事件的名称,要指派的函数 ,是否处理程序要用在冒泡或捕获阶段。
第三个参数为true,用在捕获阶段,是则false用在冒泡阶段。
[object].addEventListener(“事件名称”,函数名,bCapture)
[object].removeEvenList()(“事件名称”,函数名,bCapture)
****(重要)兼容性问题的解决:
if(document.addEventListener){ //DOM
odiv.addEventListener("click",fnclick1,true);
}
else if(document.attachEvent){ //IE
odiv.attachEvent("onclick",fnclick1)
}
2 Event对象
tips:Event 对象代表事件的状态。
比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件通常与函数结合使用,函数不会在事件发生前被执行!
2.1 定位:
1.ie中:event对象是window对象的一个属性。
必须如下执行:
odiv.onclick = function(){
var oevent =window.event;
}
2.DOM中:event对象只能作为仅有的参数传给事件处理程序。
必须如下执行:
odiv.onclick = function (oEvent){};
2.2 属性和方法
1)ie中event属性和方法:
2)dom中event属性和方法:
3 事件类型:
1.鼠标事件:click dbclick mousedown mouseout mouseover mouseup mousemove
2.键盘事件:keydown keypress keyup
3.HTML事件:load unload change scroll focus blur
dom事件与event对象总结的更多相关文章
- Javascript防冒泡事件与Event对象
防冒泡 防冒泡用到的就是event的属性和方法 function add2shop(e) { if (!e) var e = window.event; e.cancelBubble = true; ...
- javascript事件与event对象的属性
javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...
- 事件的event对象基本解释
事件流: 描述的是在页面中接受事件的顺序主要分为两种: 事件冒泡.事件捕获 事件event对象:1. type 获取事件类型2. target获取事件目标3. stopPropagation() 阻止 ...
- 添加事件及Event对象的兼容写法
一.事件流 事件流描述的是从页面中接受事件的顺序. IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流 1.事件冒泡 事件冒泡,即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点) ...
- DOM 事件深入浅出(二)
在DOM事件深入浅出(一)中,我主要给大家讲解了不同DOM级别下的事件处理程序,同时介绍了事件冒泡和捕获的触发原理和方法.本文将继续介绍DOM事件中的知识点,主要侧重于DOM事件中Event对象的属性 ...
- DOM 事件深入浅出(一)
在项目开发时,我们时常需要考虑用户在使用产品时产生的各种各样的交互事件,比如鼠标点击事件.敲击键盘事件等.这样的事件行为都是前端DOM事件的组成部分,不同的DOM事件会有不同的触发条件和触发效果.本文 ...
- DOM事件对象
触发DOM上的事件时会产生一个事件对象event. event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息. event对象会传入到事件处理程序中. 一.DOM 中的 ...
- JS事件流、DOM事件流、IE事件处理、跨浏览器事件处理、事件对象与类型
事件的移除 removeEventListener() 第二个参数需要指定要移除的事件句柄,不能是匿名函数,因为无法识别 想要移除成功,那么三个参数必须跟addEventListener中的三个完全一 ...
- 深入理解DOM事件机制系列第四篇——事件模拟
× 目录 [1]引入 [2]模拟机制 [3]自定义事件 前面的话 事件是网页中某个特别的瞬间,经常由用户操作或通过其他浏览器功能来触发.但实际上,也可以使用javascript在任意时刻来触发特定的事 ...
随机推荐
- MySQL int(11)及int(M)解析
默认创建int类型的字段,SHOW CREATE TABLE table_name或DESC table_name常常可以看到其默认情况为int(11). 这个int(M)很多时候都会被误解为最大范围 ...
- hive的使用02
1.hive的交互方式 1.1 bin/hive 进入hive交互命令行环境 1.2 bin/hive -e 'select * from hive.student;' (可以通过 > 将结果写 ...
- JDBC相关的类介绍
JDBC 背景:1996年,Sun公司推出了Java数据库连接(Java Database Connectivity JDBC)工具包的第一个版本.该工具包使得程序员可以使用结构化语言SQL连接到一个 ...
- Upgrade NE script with GUI but cannot support multithread, need to add soon
#-*- coding:utf-8 -*- __authour__='CC' from Tkinter import *import osimport telnetlibimport timeimpo ...
- Javascript学习笔记:闭包题解(2)
代码: var name='The Window'; var object={ name:'My Object', getNameFunc:function(){ return function(){ ...
- ZigBee 安全探究
ZigBee 安全探究 0x02 ZigBee安全机制 (注:对于本节内容,可能在新版ZigBee协议标准中会有所变化,请以新版为准.) ZigBee主要提供有三个等级的安全模式: 1. 非安全模式: ...
- mybatis-mysql操作存储过程
java代码: @RequestMapping(value = "/testProcedure", method = RequestMethod.GET) public @Resp ...
- AWT编程学习01(未完成)
本文资料来源:<java疯狂讲义> 作者:李刚 终于要学习这一部分了~~虽然很多人(明明是绝大多数的人)说学这个没有用...而且有点过时了...但我觉得很有意思啊...感兴趣就学~~反正多 ...
- Alpha版本十天冲刺--Day6
会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 获取帖子接口,url图片解析 无 获取帖子详情接口,发帖接口 这两天都是白天睡大觉,晚上敲代码,感觉得调一下作息了,假期更加爱赖床了,还得继 ...
- 深入理解javascript系列,读书笔记
深入理解JavaScript系列(2):揭秘命名函数表达式 1.讲了函数声明和函数表达式的区别,包括一些在函数提升上的区别 2.如果给函数表达式的函数也取名,会在调试的时候受益 3.不要在block( ...