`
357029540
  • 浏览: 726698 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

浅谈JavaScript中的事件模型

阅读更多
事件模型(DOM)是指处理事件的方式,在JavaScript中由于对事件模型的支持方式不同,主要分为非DOM浏览器(主要代表是IE浏览器)和DOM浏览器(主要代表是火狐浏览器等)。

在一个相同事件由不同元素实现时,就形成了事件流,即事件的执行顺序。事件的执行顺序分为冒泡技术和事件捕获技术。冒泡技术是主要针对IE的解决方案,其基本思想是事件从事件的发生目标最内部开始触发,向上触发到最外部,它是沿着DOM层次向上冒泡,直到顶部,所谓的DOM层次是指最内部元素开始,依次向上到达它的父层,直到最顶部的父层元素;事件捕获技术刚好与冒泡技术相反;DOM即支持冒泡技术,又支持事件捕获技术,但是事件捕获先于冒泡捕获发生。

  事件处理程序即监听器分为传统事件处理程序和现代事件处理程序。传统事件处理程序被所有浏览器所支持,但是不能为某一个事件添加多个处理方法,而现代处理程序在不同的浏览器有不同的实现方式。在使用已有的函数时必须注意在绑定事件处理程序到事件属性时,只能引用函数的名称,后面不能加括号,同时必须确保在HTML元素被添加到DOM之前,登记事件处理程序。在现代事件处理程序中,必须区分好IE浏览器和DOM浏览器的使用,在IE浏览器中,每个元素和window对象有两个方法:attachEvent()和detachEvent(),其语法格式为[Object].attachEvent(“事件处理程序的名称”,函数),[Object].detachEvent(“事件处理程序的名称”,函数),这里的事件处理程序名称前必须加上on;DOM浏览器中是通过addEventListener()和removeEventListener()方法完成事件处理程序指派和删除的任务。其语法为[Object].addEventListener(“事件名称”,函数名,bCapture);[Object].removeEventListener(“事件名称”,函数名,bCapture),第三个参数是用于程序是处理在捕获阶段(参数为true)还是在冒泡阶段(参数为false)。

  在IE中Event对象是window对象的一个属性,因此事件处理程序访问event对象的方式为var oEvent =window.event;它只有在事件发生时才可以访问。判断浏览器是IE还是DOM浏览器的方式是: functionbrowserType (oEvent){ if(window.event) { }  elseif(oEvent){} }

IE的event和DOM的event的相同点:获取事件类型(var sType =oEvent.type;)、获取键盘代码(var iKeyCode =oEvent.keyCode;)、检测Shift,Alt,Ctrl(var bShift = oEvent.shiftKey;varbAlt = oEvent.altKey; var bCtrl = oEvent.ctrlKey;)、获取客服区坐标(variClientX = oEvent.clientX;var iClientY =oEvent.clientY;)、获取屏幕坐标(var iScreenX = oEvent.screenX;var iScreenY= oEvent.screenY;);不同点:IE获取目标 var oTarget =oEvent.srcElement;DOM为var oTarget = oEvent.target;获取字符码:IE:variCharCode = oEvent.keyCode;DOM:var iCharCode =oEvent.charCode;阻止事件的默认行为:IE:oEvent.retrunValue =false;DOM:oEvent.preventDefault();中止事件传播:IE:oEvent.cancelBubble =true;DOM:oEvent.stopPropagation();

  在JavaScript中DOM定义了三个事件类型:鼠标事件、键盘事件和HTML事件。鼠标事件包括:单击鼠标click、双击鼠标dblclick、按下任意鼠标按钮mousedown、将鼠标移出元素边界mouseout、将鼠标移到元素上mouseover、释放鼠标按钮mouseup、在一个元素上重复发生mousemove;键盘事件包括:在键盘上按下键时keydown、在键盘下按下一个字符键keypress、释放一个按键keyup;HTML事件包括:所有的东西被全部装载时load、全部页面被卸载unload、用户中止装载进程前而它没有被全部装载时abort、对象不能被装载error、用户触发select事件的select、值被改变时change、按钮被点击时submit、点击重置按钮reset、窗口大小被调整时resize、滚动有滚动条的任何元素是scroll、获得焦点时focus、失去焦点时blur。
分享到:
评论

相关推荐

    浅谈javascript中createElement事件

    createElement是HTML中应用W3C DOM对像模型建立子节点也就是子元素的概念 代码如下:  [removed]  [removed] = function () {  var input = document.createElement(‘input’);  var button = document....

    浅谈javascript对象模型和function对象

    主要简单介绍了javascript对象模型和function对象,以及相关的示例代码,非常实用,需要的小伙伴参考下

    浅谈javascript中的DOM方法

    DOM就是Html页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性、方法就可以对网页中的文本框、层等元素进行编程控制。比如通过操作文本框的DOM对象,就可以读取文本框中的值、设置文本框中的值...

    【JavaScript源代码】浅谈React双向数据绑定原理.docx

    浅谈React双向数据绑定原理  目录 什么是双向数据绑定实现双向数据绑定数据影响视图视图影响数据 什么是双向数据绑定 实现双向数据绑定 数据影响视图视图影响数据 数据影响视图 视图影响数据 如果已经学过...

    浅谈Javascript中的12种DOM节点类型

    DOM的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容)。浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构。DOM的最小组成单位叫做...

    浅谈javascript语法和定时函数

    一、JavaScript基本语法。 (一)数据类型与变量类型。 整数,小数,布局,字符串,日期时间,数组 强制转换: parseInt() parseFloat() isNaN() (二)数组 var 数组名 = new Array([长度]); //“假冒”数组 a....

    JavaScript网页特效应用开发手册

    第1章 Javascript浅谈 1-1什么是JavaScript? 1-2如何使用Javascript 1-3 Javascript和 HTML的搭配 1-4 JavascnPt和一般程序语言的差异 1-5 Javascnpt的限制 第2章 撰写Javascnpt 2-1 JavaScript要写在网页原始代码的...

    浅谈JavaScript_DOM学习篇_图片切换小案例

    DOM: document object model (文档对象模型) 根据id获取页面元素 : 如: var xx = document.getElementById(“id”); 根据标签获取元素: 如: var xx = document.getElementsByTagName(“div”); <!DOCTYPE ...

    浅谈Angular 的变化检测的方法

    模型的值可以是 JavaScript 中的原始数据类型、对象、数组或其他数据对象。然而视图可以是页面中的段落、表单、按钮等其他元素,这些页面元素内部使用 DOM(Document Object Model) 来表示,为了更好地理解,我们来看...

    浅谈JS获取元素的N种方法及其动静态讨论

    而文档对象模型 (DOM) 是HTML和XML文档的编程接口,它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性...

    asp.net知识库

    也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动...

    javascript设计模式之中介者模式Mediator

    1,笔者浅谈 我们从日常的生活中打个简单的比方,我们去房屋中介租房,房屋中介人在租房者和房东出租者之间形成一条中介。租房者并不关心他租谁的房。房东出租者也不关心他租给谁。因为有中介的存在,这场交易才变得...

Global site tag (gtag.js) - Google Analytics