`
libo_591
  • 浏览: 40255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS事件总结

 
阅读更多

 

一.事件的基本属性及不同浏览器的区别

a)         获取事件的办法

                         i.              标准DOM

在标准dom模型中,事件对象为事件处理函数的第一个参数

window.onclick=function(e){

         confirm(e.clientX+”--”+e.clientY)

}

                       ii.              IE

然后在IE中,事件对象作为window的一个属性存在,并且此属性在事件触发时才有值

window.onclick=function(){

         var e = window.event;

         confirm(e.clientX+”--”+e.clientY)

}

                      iii.              通用的获取办法

window.onclick=function(e){

         e = e||window.event;

}

b)         下面这个表格展现了常用的DOMIE的事件对象属性获取方式的不同

DOM

IE

属性解释

e.target

e.srcElement

触发事件的目标对象

e.preventDefault();

e.returnValue=false;

阻止事件默认行为

e.stopPropogation();

e.cancelBubble=false;

阻止事件冒泡

e.pageX

e.clientX+document.body.scrollLeft

鼠标的页面X坐标

e.pageY

e.clientY+document.body.scrollTop

鼠标的页面Y坐标

 

 

 

 

 

 

c)         下面的表格展现了2个浏览器模型都具体的常用属性

属性

解释

e.clientX

相对于浏览器窗口的(不包括工具条等)

e.clientY

 

e.screenX

相对于浏览器窗口的(包括工具条等)

e.screenY

 

 

二.添加事件的方法(覆盖和增加)

a)         覆盖事件

这种方法会取消之前设置的事件函数,使用新设置的事件处理函数响应事件

                         i.              oInput.onclick=function(){}

b)         增加事件

这种方法不会取消之前设置的事件函数,同时新增加处理函数

                         i.              DOM

1.         添加事件 -oInput.addEventListener(“click”,fn,catchTrigger)

2.         移除事件 –oInput.removeEventListener(“click”,fn,catchTrigger)

需要说明的是,第三个参数为true,则在捕获阶段触发,为false,则在冒泡阶段触发,同时,移除时,这个参数的值,必须和添加时的值相同

                       ii.              IE

1.         添加事件-oInput.attachEvent(“onclick”,fn)

2.         移除事件-oInput.detachEvent(“onclick”,fn)

三.事件流的理论知识

a)         标准DOM

                         i.              事件流包括捕获阶段和冒泡阶段,通过添加事件函数的第三个函数来指定何时触发

b)         IE模型

                         i.              IE模型只包括冒泡阶段

四.事件的优化-事件委托

a)         在开发过程中,为了优化效率,我们可以使用事件委托的办法来优化事件函数

b)         比如有一个DIV容器,里面有若干按钮,按钮的数目非常大,比如几千个,那么我们给每个按钮都添加一个事件函数,则非常耗费效率。事件委托的做法是,我们给DIV添加一个事件,然后在事件函数内部通过判断的方式来处理

五.自定义事件

a)         clickmouseovermouseout等,都属于内置事件,

b)         我们也可以像使用内置事件一样,使用自定义的事件

c)         原理:在添加事件时,将事件的类型名,事件的处理函数,保存在内存中;触发时,从内存中寻找出事件名对应的函数,并执行;移除时,移除内存中的事件类型名及其函数

d)         Jquery中的相关方法(有兴趣可以查看jquery的源码进行学习)

                         i.              $(someobj).bind(eventtype,data,fn)

1.         Eventtype为事件类型名字符串,data为向事件对象传递的参数,fn为回调函数

2.         Data可为json对象,调用时从event.data中获取

                       ii.              $(someobj).trigger(eventtype,data)

1.         Eventtype为绑定时的对应名字,data为触发时像函数传递的参数,为数组对象,然后函数里从第二个开始,依次对应

六.事件与回调函数

a)         开发组件过程中,遇到的一个问题是,我对外开放的某些接口,是使用自定义事件,还是使用回调函数,我认为这个东西还是要根据实际情况进行综合考虑

b)         回调函数的好处:容易理解。但是会阻塞回调处代码后面的代码的执行

c)         事件的好处:相当于使用了观察者模式,对消息进行了通知,而不用考虑具体的如函数执行上下文等问题,使得程序设计耦合性小,易扩展。不会阻塞触发事件处代码后面的代码的执行

分享到:
评论

相关推荐

    使用JavaScript事件综合查询,js事件大全

    JavaScript事件是浏览器或Node.js环境中发生的特定行为,如用户点击按钮、页面加载完成或输入框获得焦点等。事件驱动编程是JavaScript的核心特性之一,通过监听和处理这些事件,我们可以创建响应式的用户体验。 二...

    JavaScript程序设计——事件处理实验报告.docx

    实验报告详细介绍了JavaScript事件处理的相关知识...总结来说,这个实验旨在帮助学生理解和熟练运用JavaScript事件处理,提升Web交互的用户体验。通过实际操作,学生可以更好地掌握这些概念,并将其应用到实际项目中。

    js事件监听机制(事件捕获)总结

    JavaScript事件监听机制是前端开发中极其重要的一环,它允许开发者对用户行为(如点击、按键、鼠标移动等)作出响应。事件监听涉及的几个核心概念包括事件传播的两种方式:事件捕获和事件冒泡,以及兼容性问题和事件...

    JavaScript事件学习小结(五)js中事件类型之鼠标事件

    JavaScript事件学习小结(五)js中事件类型之鼠标事件 //www.jb51.net/article/86259.htm JavaScript事件学习小结(一)事件流 //www.jb51.net/article/86261.htm javaScript事件学习小结(四)event的公共成员...

    JavaScript事件学习小结(一)事件流

    标题中的"JavaScript事件学习小结(一)事件流"指的是JavaScript中的事件处理机制,特别是事件流的概念。事件流描述了在DOM(文档对象模型)中事件如何从根节点传播到具体的元素节点。在JavaScript中,事件是用户与...

    js事件设计

    JavaScript事件设计是Web开发中的核心概念,它使得用户...总结,JavaScript事件设计是构建动态Web应用的基础,理解并熟练运用事件模型、事件处理、事件流以及相关技巧,能够帮助开发者创建出更加互动和用户友好的网页。

    javascript阻止事件冒泡的一种方法

    总结一下,阻止事件冒泡是JavaScript中控制事件处理流程的关键技巧,它允许开发者更精细地管理事件响应。通过`event.stopPropagation()`和`event.stopImmediatePropagation()`,我们可以防止事件在DOM树中向上传播,...

    一些主流JS框架中DOMReady事件的实现小结

    标题所指的知识点是主流JavaScript框架对DOMReady事件的处理方式。DOMReady事件指的是在DOM树构建完成之后立即触发,而不需要等待图片、脚本、样式表等其他资源加载完毕。这一点对于提高用户体验尤为重要,因为在...

    javascript键盘响应事件

    总结,通过原生JavaScript或jQuery及其插件,我们可以轻松地实现键盘响应事件,监听用户的键盘输入,提供更加丰富的交互体验。在开发过程中,了解并熟练运用这些键盘事件及其属性,能帮助我们构建更具动态性和用户...

    js捕获后台事件js捕获后台事件

    ### 知识点详解:JS捕获后台事件 #### 一、概述 在现代Web开发中,JavaScript(简称JS)是实现网页动态交互的核心技术之一。通过JavaScript,开发者可以为网站添加各种各样的功能和效果,提升用户体验。本文将重点...

    simplecalendar.js记录事件的日历插件

    "simplecalendar.js"是一款轻量级、易用且功能丰富的JavaScript日历插件,专为开发者设计,用于快速集成到各种Web应用中,实现事件记录与展示的功能。本文将深入探讨其核心特点、使用方法以及如何自定义和扩展。 一...

    js 事件小结 表格区别

    一般事件 事件 浏览器支持 描述 onClick HTML: 2|3|3.2|4Browser: IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick HTML: 2|3|3.2|4Browser:IE4|N4|O 鼠标双击事件 onMouseDown ...

    js事件广播实现数据传递

    ### js事件广播实现数据传递 在JavaScript开发中,事件机制是一种非常重要的编程模式,它可以用于在不同的组件或模块之间进行通信。特别是在复杂的前端应用中,合理利用事件机制能够有效地提高代码的可维护性和扩展...

    asp.net中TextBox获得焦点和失去焦点——客户端JavaScript事件

    本文将详细讨论如何利用客户端JavaScript事件来实现这些需求。 首先,我们要理解JavaScript事件。JavaScript是一种运行在客户端浏览器上的脚本语言,它能监听用户行为和页面状态的变化,然后触发相应的函数。在...

    10-JS事件基础.pptx

    在这个"10-JS事件基础"的教程中,我们将深入理解JavaScript中的事件处理机制,包括事件对象、事件冒泡、DOM事件流以及鼠标和键盘事件。 首先,让我们了解一下什么是事件对象。在JavaScript中,每当发生一个事件(如...

    JS事件冒泡浏览器兼容

    总结一下,JavaScript事件冒泡是浏览器中处理用户交互的重要机制,但它在不同浏览器间存在兼容性问题。通过使用DOM2级事件接口和编写兼容性代码,可以有效地管理这些差异,确保在各种浏览器环境下都能正确处理事件。...

    js监听鼠标点击和键盘点击事件并自动跳转页面

    常见的JavaScript事件类型包括鼠标事件、键盘事件、表单事件、文档事件等。 在本例中,我们要关注的是鼠标点击事件(onmousedown)和键盘点击事件(onkeydown)。onmousedown事件是在用户按下鼠标按钮时触发的,而...

    js 右键事件源码

    总结起来,JavaScript处理右键事件涉及到的主要知识点有:事件处理、`contextmenu`事件、`addEventListener`和`attachEvent`的使用、`event.preventDefault()`阻止默认行为,以及跨浏览器兼容性的处理。通过以上讨论...

Global site tag (gtag.js) - Google Analytics