`
357029540
  • 浏览: 735897 次
  • 性别: 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语言中文档节点访问技术.pdf

    浅谈JavaScript语言中文档节点访问技术 在本文中,我们将探讨JavaScript语言中文档节点访问技术的相关知识点。节点访问是JavaScript语言中的一种基本技术,用于访问和操作HTML文档中的元素。下面是节点访问技术的...

    浅谈Javascript单线程和事件循环.doc

    事件循环是JavaScript执行模型的核心部分,它允许程序处理多个任务而不会阻塞主线程。 事件循环的工作原理如下:任务被放入一个任务队列,当主线程空闲时,它会从队列中取出一个任务(称为宏任务)来执行。在执行宏...

    浅谈JavaScript 库———jQuery, ExtJs 的对比研究

    ### 浅谈JavaScript库——jQuery与ExtJs的对比研究 #### 一、引言 随着Web 2.0和RIA(Rich Internet Applications)技术的普及,JavaScript作为一种前端开发的重要工具,逐渐占据了重要的地位。它不再仅仅是用于...

    浅谈JavaScript的事件

    事件流描述了事件在DOM(文档对象模型)中的传播路径。主要有两种模式: - **冒泡流(Bubble Phase)**:事件从最具体的元素(即嵌套最深的节点)开始,然后逐级向上层元素传播,直到到达DOM树的根节点,也就是...

    浅谈javascript中的事件冒泡和事件捕获

    JavaScript中的事件处理是Web开发中的核心概念,它涉及到用户与网页交互时的响应机制。本文主要探讨了两个关键的事件处理机制:事件冒泡和事件捕获。 1. 事件冒泡(Event Bubbling) 事件冒泡是JavaScript中最早被...

    浅谈javascript中createElement事件

    在探讨JavaScript编程时,`createElement` 事件是一个核心概念,它是HTML与W3C DOM对象模型交互的基础。在浏览器端,我们可以通过JavaScript动态地创建新的HTML元素,并将其添加到网页文档中,而`createElement` 是...

    浅谈javascript对象模型和function对象

    本文深入浅出地探讨了JavaScript对象模型与function对象的概念与用法,并通过示例代码展示了JavaScript函数的特性。接下来将详细阐述本文提到的关键知识点。 首先,JavaScript中的函数也是对象,这意味着函数可以像...

    浅谈JavaScript的Polymer框架中的事件绑定

    虽然Polymer提供了多种事件绑定方式,但出于性能和可维护性的考虑,推荐使用视图模型中定义的方法进行事件处理。这样做不仅使得代码结构更加清晰,也便于在复杂项目中管理各个组件间的交互和状态变化。 总之,通过...

    ppk谈javascript示例源码

    "ppk谈JavaScript"这本书深入浅出地介绍了JavaScript的核心概念和技术,为读者提供了丰富的示例,帮助理解并掌握这一语言。作者ppk,即Peter-Paul Koch,是一位在Web开发领域有着深厚造诣的专家,他的著作以其清晰的...

    浅谈javascript中的DOM方法

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

    浅谈JavaScript中的对象及Promise对象的实现

    除此之外,JavaScript中的事件处理也是关键。比如`onclick`属性,用于监听按钮点击事件,可以绑定一个处理函数来响应用户的点击行为。 接下来,我们转向Promise对象。Promise是JavaScript中处理异步操作的重要工具...

    浅谈Javascript线程及定时机制

    Javascript线程及定时机制是指Javascript中的任务...总的来说,Javascript的线程模型和定时机制是其异步编程模型的基础,也是前端开发中极为关键的一部分。理解了这些机制,对于编写高效且响应迅速的Web应用至关重要。

    浅谈javascript回调函数

    回调函数还广泛应用于资源加载(如动态加载JavaScript文件、图片加载完成)、DOM事件处理(点击事件、滚动事件等)、Node.js事件驱动模型,以及setTimeout和setInterval等定时任务。在setTimeout中,尽管延迟时间为0...

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

    Javascript中定义了文档对象模型(DOM),它是一种编程接口,用于在编程语言(如Javascript)与文档(HTML或XML)之间建立联系。DOM将文档构建成一个由节点(nodes)和对象(objects)组成的树形结构,使得开发者...

    浅谈JavaScript 框架分类

    这类框架将模型、视图和控制器(或视图模型)分离,使得业务逻辑和UI更新更加解耦,尤其在MVVM框架中,开发者只需关注业务逻辑,而DOM操作由框架自动处理。 在框架特征方面,基本数据类型的操作、类型判定、选择器...

    浅谈JavaScript异步编程

    JavaScript异步编程是JavaScript开发中不可或缺的一个重要概念,尤其在处理网络请求、文件读写等耗时操作时显得尤为重要。由于JavaScript是单线程的,这意味着在同一时间只能执行一段代码,而异步编程则允许我们在...

    浅谈JavaScript 浏览器对象

    JavaScript中的浏览器对象模型(BOM,Browser Object Model)为Web开发者提供了一组浏览器窗口和框架的接口,允许脚本与浏览器窗口进行交互。本文将深入讨论与BOM紧密相关的window对象以及navigator对象,它们作为...

    浅谈Javascript如何实现匀速运动

    1. 事件监听:在JavaScript中,可以使用事件监听器来捕捉用户的交互动作,比如鼠标悬停(mouseover)和鼠标移出(mouseout)。通过这些事件触发特定函数的执行,从而带动运动效果。 2. 定时器函数:JavaScript提供...

Global site tag (gtag.js) - Google Analytics