事件

事件

2.什么是事件?

onchange内容发生改变的时候触发

1)鼠标事件MouseEvent

1. onclick 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击

2. ondblclick   鼠标双击事件

3. onmousedown  鼠标按下事件

4. onmouseup    鼠标抬起事件

5. onmouseover  鼠标移入事件

6.onmouseout   鼠标移出事件

7. onmousemove  鼠标移动时事件

8. onmouseenter鼠标移动到元素上时触发(通常与 onmouseleave 事件一同使用)

9. onmouseleave 鼠标移除元素时触发(事件不支持冒泡)

10.oncontextmenu 鼠标右键

11:onmousewheel 鼠标滚轮事件

- wheelDelta 可以查看滚轮的滑动的距离

2)系统事件

1.onload   事件会在页面或图像加载完成后,在执行 dom 0级事件,私有属性

调用多次,只执行最后一次

-  document.ready()是DOM结构加载完成后,在执行(不代表所有文件都加载完)

调用多次,执行多次

document.ready()的缩写:

$(function(){

})()

2.onscroll 浏览器的滚动条位置发生变化时触发的事件

3.onerror  加载过程中发生错误时被触发

4.onresize 当浏览器的窗口大小被改变时触发的事件

3)键盘事件keyboardEvent

1. onKeyDown   按下键盘按键

2. onKeyUp     放开键盘按键

3. onKeyPress  当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象]

4)表单事件

1.onfocus 当某个元素获得焦点时触发的事件

2.onblur  当前元素失去焦点时触发的事件 [鼠标与键盘的触发均可]

3.onChange 当前元素失去焦点并且元素的内容发生改变而触发的事件[鼠标与键盘的触发均可

4.onReset  当表单中RESET的属性被激发时触发的事件

5.onSubmit  一个表单被递交时触发的事件

DOM0级事件和DOM2级事件的区别

DOM0级事件和DOM2级事件的区别:

1)DOM0级事件是元素身上的私有属性 2)DOM0级事件,当给同一个元素,同一个行为上绑定多个不同的方法的时候,后面的方法会“覆盖”前面的方法; 事件传播机制只有冒泡阶段

2)DOM2级事件是元素身上的公有属性,存放在元素所属的eventTarget这个类的原型上;2)DOM2级事件,可以给同一个元素的同一个行为上绑定多个不同的方法;执行顺序按照绑定顺序执行;addEventListener  的第三个参数指定true 捕获阶段,false冒泡阶段

事件对象

事件对象:就是描述了当前所触发行为的详细信息; 是一个对象数据类型,里面保存着事件的相关信息

1)标准浏览器下,通过形参e来得到事件对象

2)IE6-8下的事件对象,跟形参没有任何关系;通过window.event来获取

兼容处理:e=e||window.event;

- e.type事件类型 是点击事件还是移动事件?

4.关于事件对象的详细信息:

1)clientX/clientY:当前鼠标落脚点距离可视区(能看见)左上角的坐标位置;--兼容

2) pageX/pageY:当前鼠标落脚点距离第一屏左上角的坐标位置;--不兼容; 针对于整个文档

var  pagey = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop);

var pagex = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);

var pageY = e.pageY || pagey;

var pageX = e.pageX || pagex;

(3)event.offsetX、event.offsetY 鼠标位置距离事件源(自身的元素)的xy轴

鼠标相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。

(4)event.screenX、event.screenY 针对于显示器的整个屏幕

鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性

事件源

- 事件源:(查看事件的源头是哪个标签)var target=e.target||e.srcElement;当前发生事件的这个元素--不兼容

兼容处理:e.target||e.srcElement;

tagName:标签名

nodeName:标签名

- 阻止事件冒泡: return false 也可以阻止默认行为- 阻止默认事件:e.preventDefault?e.preventDefault():e.returnValue=false;- 取消冒泡:e.stopPropagation?e.stopPropagation():e.cancelBubble=true- setCapture 聚焦   releaseCapture 释放焦点- e.relatedTarget|| e.fromElement;阻止冒泡 阻止让的子元素往上冒泡- if(this.contains(oTo)) return 如果遇到oTo的时候组织冒泡

事件委托

- 事件委托:一个容器内document多个元素div相关行为click绑定的时候,可以采用事件委托方式进行绑定,执行和性能上提升很多; 利用时间会进行冒泡传播的机制,我们给最外层元素的相关行为时间触发;- 事件流 也就是:利用冒泡的原理,把事件加到父级上,触发执行效果。- 事件冒泡:当前元素相关行为click触发的时候,会导致当前元素的所有上级元素都有相关行为

事件传播

1;事件传播包括两个阶段:

1)捕获阶段(从外向里):从外面开始,最先执行的

2)冒泡阶段(从里向外):当前目标元素,相关行为触发,他的所有上级元素的相关行为也会触发,一直到document(一些浏览器 一直到windouw)

- 先捕获,在冒泡

2:事件传播包含三阶段;

1)捕获阶段 从外向内 先绑定哪一个,就先执行哪一个

2)目标阶段 执行到目标元素时,停止捕获,执行完目标阶段后,在冒泡

3)冒泡阶段 从内向外,当前目标元素相关行为触发,他的所有上级元素的相关行为都会触发

ctrl+r替换

ctrl+f查找

- 事件池可以有多个函数

关于事件库封装

1)addEventListener 标准浏览器下  DOM2级事件绑定 点击

1;可以按照绑定的先后顺序,顺序调用

2;this指向当前绑定這个元素

3:不会出现重复绑定情况

dom2级事件

* 第一个参数是事件类型

* 第二个参数是处理函数

* 第三个参数是布尔类型 true捕获阶段 false冒泡阶段

*  bTn.addEventListener('click',

function()

{

}

,false)

- 移除的时候,要保证三者一致,事件行为,处理函数阶段

- 捕获阶段绑定的,一定要写true冒泡阶段绑定的要移除false'

removeEventListenner('click',fn,false)

2)attachEvent() IE 浏览器下 添加事件

bTn.attachEvent('onclick',function()

{

}

)

1;

顺序问题

2:this指向window 而当不是当前這个元素

3:有重复绑定问题

4:detachEvent 解除绑定事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 事件流 IE和Netscape开发团队提出了完全相反的两种事件流的概念,事件冒泡流和事件捕获流。 事件冒泡 事件由...
    exialym阅读 924评论 0 9
  • 13.1 事件流 “DOM2级事件”规定事件流包括3个阶段:事件捕获阶段,处于目标阶段,事件冒泡阶段。事件捕获表示...
    Elevens_regret阅读 404评论 0 0
  • 什么是事件: 我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠...
    张松1366阅读 6,762评论 1 6
  • DOM0级和DOM2级在事件监听使用方式上有什么区别? DOM0级事件监听:用JavaScript指定事件处理程序...
    LeeoZz阅读 368评论 0 1
  • 也曾想徜徉书卷俯仰山川,也曾想咖啡茶盏村野林泉,也曾想随遇而安逆来顺受哪怕人为刀俎我为鱼肉,面对过死亡也抗拒过死亡...
    咖啡当茶茶当酒阅读 201评论 0 0