学习JavaScript的事件

2016-02-20 00:46 5 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享学习JavaScript的事件的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - Web开发 】

在很多语言的学习中,事件都是一个比较难理解,但是又是一个很重要的概念。javascript中的事件处理也是一样,正因为有了事件处理,才会出现Ajax拖动的效果。本文就讨论一下JavaScript中的事件处理,读过之后,您就会知道,很多Ajax框架实现拖动效果的原理了。

一、 IE Event对象

(一)IE Event对象的主要属性和方法

在IE中有一个专门负责事件处理的对象Event,这个对象负责对事件的处理,含有很多的属性和方法,通过这些方法和属性的调用,就能完成很多的事件处理。

type:事件的类型,就是HTML标签属性中,没有on前缀之后的字符串,例如Click就代表单击事件。

srcElement:事件源,就是发生事件的元素。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

button:声明了被按下的鼠标键,是一个整数。1代表鼠标左键,2代表鼠标右键,4代表鼠标的中间键,如果按下了多个鼠标键,就把这些值加在一起,所以3就代表左右键同时按下。

clientX/clientY:是指事件发生的时候,鼠标的横、纵坐标,返回的是整数,它们的值是相对于包容窗口的左上角生成的。

offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。

altKey,ctrlKey,shiftKey:顾名思义,这些属性是指鼠标事件发生的时候,是否同时按住了Alt、Ctrl或者Shift键,返回的是一个布尔值。

keyCode:返回keydown和keyup事件发生的时候,按键的代码以及keypress事件的Unicode字符。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

fromElement、toElement前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。

cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素。

returnValue:一个布尔值属性,设置为false的时候可以组织浏览器执行默认的事件动作,相当于a href=# onclick=ProcessMethod();return false; /。

attachEvent()和detachEvent()方法:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。

(二)IE Event对象的一些说明

1.IE Event对象是一个全局属性
在IE中,不能把Event对象作为参数传递给事件处理程序,只能用window.event或者event来引用Event对象。因为在IE中,Event是window的一个属性,也就是说event是一个全局变量,这个变量提供了事件的细节。

2.IE中事件的起泡:IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如,div标签包含了a,如果这两个标签都有onclick事件的处理函数,那么执行的情况就是先执行a标签的onclick事件处理函数,再执行div的事件处理函数。如果希望a的事件处理函数执行完毕之后,不希望执行上层的div的onclick的事件处理函数了,那么就把cancelBubble设置为false即可。

来源:http://www.tulaoshi.com/n/20160220/1632501.html

延伸阅读
标签: Web开发
问题:有一个列表,每一个条目都是这篇文章的部分内容,类似这样: 123456789101112  div class="list" div class ="item"第一篇文章/div div class ="item"第二篇文章/div...../div 而且在每个条目的div的右上角都有一个评论链接,点击就会展开所有的评论,并且显示评论框,这个链接...
标签: Web开发
我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onchange事件就是这样子的.你得有Change(改变),才能触发该事件... 掌握了它的特性后,相应的解决办法也很简单. select name=sel onchange="bao(this.options[this.options.selectedIndex].value)" option value=""请选择 opt...
标签: Web开发
事件 WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用do标签来处理,另一类是相关页面内部的事件,用onevent标签来处理。 do的语法如下:do type="type" label="label" name="name" optional="false|true"任务/do,任务就是以前提到的四种任务。do的属性中,type是必选的...
标签: Web开发
每个JavaScript框架都实现跨浏览器的事件处理,鼓励你摆脱旧式的内联附加事件而使用精简的线性方法。看看清单6的jQuery例子,使用hover事件高亮显示div元素。 清单6:使用jQuery附加hover事件 $('#the-box').hover(function() {    $(this).addClass('highlight'); }, function() {    $(this).removeClass('highli...
标签: Web开发
click() 对象.click() 使对象被点击。  closed 对象.closed 对象窗口是否已关闭true/false  clearTimeout(对象) 清除已设置的setTimeout对象  clearInterval(对象) 清除已设置的setInterval对象  confirm("提示信息") 弹出确认框,确定返回true取消返回false  cursor:样式 更改鼠标样式 hand crossh...

经验教程

443

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部