javascript事件模型介绍


Posted in Javascript onMay 31, 2016

一、原始事件模型

其事件类型:分为"输入事件(如onclicki)"和"语义事件(如onsubmit)"

事件程序的注册可以以下几种方式:

1、JS代码作为HTML性质值

<input type="button" value="Press me" onclick="alert('thanks');"

2、事件处理程序作为JS属性

附注:文档中的每个HTML元素在文档树中都有一个相应的JS对象,这个JS对象的属性对应于那个HTML元素的性质,无论作为HTML性质的JS代码还是作为JS属性的时间处理程序,其本身的属性都是函数"function".

<form name="f1">

<input name="b1" type="button" value="Press Me"/>

</form>

第一种赋值方式:

document.f1.b1.onclick=function(){alert('thanks');};

第二种赋值方式:

function plead(){window.status="Please Press Me!";}

document.f1.bi.onmouseover=plead;

作为JS属性的事件处理程序可以用JS属性显式调用

document.myfrom.onsubmit();

事件处理程序可以返回fale来阻止浏览器执行事件的默认动作,常用的如对onsubmit的操作。例外是
对超链接mouseover的window.status显示事件的阻挡,是返回true.例如:

<a href="help.htm" onmouseover="window.status='help';return true;">help</a>

二、DOM2事件模型

这个模型参考了IE的气泡模型而制定的,它是由w3c制定的规范.在原始模型中事件一旦发生就直接调用事件句柄,没有其它的事件传播过程.而在DOM2模型中事件有一个特殊的传播过程,分为三个阶段:

(1)capturing phase:事件被从document一直向下传播到目标元素,在这过程中如果有哪个祖先元素对该事件感兴趣可以注册自己的处理函数.

(2)target phase:事件到达目标元素,执行目标元素的事件处理函数.

(3)bubbling phase:事件从目标元素上升一直到达document,虽然所有的事件类型都会经历captruing phase阶段但是只有部分事件会经历bubbling phase阶段,例如submit事件就不会被上浮.
在整个的事件传播过程中可以调用event.stopPropagation()来停止事件的传播,调用preventDefault()来阻止浏览器的默认行为.

addEventListener("eventType","handler","true!false");

removeEventListner("eventType","handler","true!false");

三、IE模型

IE模型也提供了一个event对象封装了事件的详细信息,但是IE不把该对象传入事件处理函数,由于在任意时刻只会存在一个事件,所以IE把它作为全局对象window的一个属性,IE中的事件传播模式对应于DOM2的第二和第三阶段,首先执目标元素的处理函数,然后向上传播到达document,ie中只能能捕捉鼠标事件,而DOM2中可以捕捉所有的事件,IE中注册和删除事件处理函数的方法也不同于DOM2.

事件处理函数的注册和删除是通过元素的attachEvent("eventType","handler") and detachEvent("eventType","handler" ),与dom2不同的是eventType有on前缀

特点:
1、传播过程只起泡,不捕捉。起泡中断方法:
window.ecent.cancelBubble=true;
2、Event对象不是事件处理程序的函数参数,而是window的全局变量。
3、事件注册函数:attachEvent()和反注册:detachEvent().  

四、Netscape4事件模型

由于Netscape好像已经完全停止开发,所以就不详述了,简单的说:就是只捕捉不起泡。

以上就是javascript事件模型基本的介绍,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 引发两次$(document.ready)事件
Jan 15 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
Jquery获取第一个子元素简单实例
Jun 02 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
你真的了解BOM中的history对象吗
Feb 13 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 Javascript
使用JavaScript实现弹出层效果的简单实例
May 31 #Javascript
javascript事件处理模型实例说明
May 31 #Javascript
jQuery基础知识点总结(必看)
May 31 #Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 #Javascript
javascript小数精度丢失的完美解决方法
May 31 #Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 #Javascript
javascript基本语法
May 31 #Javascript
You might like
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
php中return的用法实例分析
2015/02/28 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
js实现带按钮的上下滚动效果
2015/05/12 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
浅析Jquery操作select
2016/12/13 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
图书室管理制度
2014/01/19 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
人事局接收函
2015/01/30 职场文书
教师年度考核个人总结
2015/02/12 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
电台广播稿范文
2015/08/19 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书