正如javascript由草根到招安,dom事件也经历了诞生,混战到规范的三个阶段

模型简介

  • 传统模型

  客户端js程序采用异步事件驱动编程模型,事件监听是这个模型最基本的要求,而且感觉也就实现了个监听...

  • ie模型

  传统模型只提供了监听功能,随着js的发展,对事件的需求也越来越多,浏览器产品经理互相摘抄各种理念比如多投,传播...而且被广大程序猿所接受
  ie模型是里面的代表,也算是少数(我都想说唯一)还存在的模型

  • dom模型

  模型是软件开发的基础,混乱的模型不存在任何用户体验,有爱的w3c诚邀各类厂家,视图建立统一的接口实现

  • jquery模型

  按理说事情就简单了,使用最新模型总不会错,但是.....
  客户老爷的重口味爱好(ie捆绑战术+盗版国情),使得神奇的落后浏览器依然存活着,而更令人恼怒的是各大产品经理对dom模型的不同理解(文档不全害死人),这时我们需要一套兼容模型
  jqury事件模型经过不断地借鉴(抄袭),设计完善,成为了非常经典的事件模型(我是jquery党)

模型规范

  •  传统模型

  传统模型只实现了监听功能,当然他有2种方式,html属性方式和脚本化方式因为全都以on开头,可以成为onXX系列

  html属性方式

<div onclick="console.log(arguments.callee)">点我点我</div>

  脚本化方式(js方式)

document.getElementsByTagName("div")[0].onclick=function(){
    console.log(arguments.callee,"by onclick");
    }

  我们可以通过任意的方式进行事件的监听,其种类超过65种,而且他还有一下几个

  1.属性中存放是是方法体,他是

function(event){
    with(xxx){
//这里面的内容,至于xxx的内容,跟具体事件有关
    }  
}

   2.属性化优先级高与脚本话

在dom解析式就进行的初始化比任何时候的脚本方式都快

  3.监控的事件只存在一个

2+3=属性化方式第一个被覆盖

ie模型

为了收买前端猴子,ie产品经理提供了以下理念冒泡,派发,并且为element提供3大接口,在派发中的bean,则被声明为event(再次强调,当时的规范没这个+事件没有参数+js单线程执行===window.event)

 

dom模型

为了解放猴子,w3c提出统一的事件模型,他吸纳了大多数厂商的全部特性,以此妄想得到所有人的支持

jquery模型

因为历史遗留问题,并非所有流行的浏览器都支持最新模型(不吐槽ie678了,说不定微软早就想把他们砸了),既然了解了基础事件模型,干嘛不自己写一个兼容模型类?

posted on 2015-03-27 11:31  Glimis  阅读(209)  评论(0编辑  收藏  举报