ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:17.24KB ,
资源ID:10497860      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10497860.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JS事件分析.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JS事件分析.docx

1、JS事件分析JS事件分析1.注册事件 1.1 使用HTML元素的事件属性1.2 给元素对象添加事件属性-DOM0形式复制代码 function clickHandler() console.log(click handler); /click handler console.log(arguments.length); /0 console.log(event.type); var myDiv = document.getElementById(myDiv); myDiv.onclick = clickHandler; 复制代码1.3 使用script标签的for和event属性(仅IE支持)

2、 alert(clicked in IE) 1.4 attachEventh和detachEvent(仅 lt IE 11支持)-DOM2形式 var myDiv = document.getElementById(myDiv); myDiv.attachEvent(onclick,function()alert(clicked in ie); 在IE 11中:对象不支持“attachEvent”属性或方法1.5 addEventListener和removeEventListener(gte IE 9支持,chrome支持,ff支持)-DOM2形式 var myDiv = document.

3、getElementById(myDiv); myDiv.addEventListener(click,function()alert(clicked); 在addEventListener中,第二个参数可以是函数也可以一个对象,要求该对象必须有handleEvent方法属性复制代码 var myDiv = document.getElementById(myDiv); var obj = name:handle, handleEvent:function() alert(clicked); myDiv.addEventListener(click,obj); function removeL

4、istener() myDiv.removeEventListener(click,obj); 复制代码2.this的指向2.1 使用HTML事件属性this指代绑定监听器的HTML元素 this指向myDiv2.2 给元素对象添加事件属性this指向绑定监听器的HTML元素复制代码 function clickHandler() console.log(this); var myDiv = document.getElementById(myDiv); myDiv.onclick = clickHandler;复制代码this指向myDiv2.3 使用script标签的for和eventth

5、is指代绑定监听器的HTML元素复制代码 console.log(this);复制代码this指向myDiv2.4 使用attachEvent和detachEventthis指向window对象复制代码 function clickHandler() console.log(this = window); var myDiv = document.getElementById(myDiv); myDiv.attachEvent(onclick,clickHandler); 复制代码打印结果:true2.5 使用addEventListener和removeEventListenerthis指代

6、绑定监听器的HTML元素复制代码 function clickHandler() console.log(this); var myDiv = document.getElementById(myDiv); myDiv.addEventListener(click,clickHandler); 复制代码3.事件对象EventIE各个版本会将Event对象绑定到window中,在需要使用Event对象时,只需window.event;在使用DOM0方法注册事件时:gte IE 9的版本会将Event对象作为参数传递到处理函数中在使用attachEvent方法注册事件时:IE的各个版本Event对

7、象作为参数传递到处理函数中firefox会将Event对象作为参数传递到处理函数中chrome:两种都有复制代码 function clickHandler(ev) console.log(ev); var myDiv = document.getElementById(myDiv); myDiv.onclick = clickHandler; 复制代码4.事件对象的属性和方法4.1 cancleBubble:是否取消冒泡4.1.1该属性在IE的各个版本都支持复制代码 function parentCliked(ev) console.log(parent clicked); var ev =

8、 ev ? ev : window.event; function childClicked1(ev) console.log(child clicked1); var ev = ev ? ev : window.event; ev.cancelBubble = true; function childClicked2(ev) console.log(child clicked2); var ev = ev ? ev : window.event; var myDiv = document.getElementById(myDiv); var d1 = document.getElementB

9、yId(d1); myDiv.onclick = parentCliked; d1.attachEvent(onclick,childClicked2); d1.attachEvent(onclick,childClicked1); 复制代码IE中打印:child clicked1child clicked2注意:添加监听器的顺序4.1.2 chrome和firefox的高版本也支持复制代码 function parentCliked(ev) console.log(parent clicked); var ev = ev ? ev : window.event; function child

10、Clicked1(ev) console.log(child clicked1); var ev = ev ? ev : window.event; ev.cancelBubble = true; function childClicked2(ev) console.log(child clicked2); var ev = ev ? ev : window.event; var myDiv = document.getElementById(myDiv); var d1 = document.getElementById(d1); myDiv.onclick = parentCliked;

11、d1.addEventListener(click,childClicked1); d1.addEventListener(click,childClicked2); 复制代码打印出:child clicked1child clicked24.2 stopPropagation():取消冒泡bubbles:返回boolean值,判断当前事件能否冒泡(只读)只有使用addEventListener方法添加的监听器,该属性才有效(即使在IE 中)复制代码 function parentCliked(ev) console.log(parent clicked); var ev = ev ? ev

12、: window.event; function childClicked1(ev) console.log(child clicked1); var ev = ev ? ev : window.event; ev.stopPropagation(); function childClicked2(ev) console.log(child clicked2); var ev = ev ? ev : window.event; var myDiv = document.getElementById(myDiv); var d1 = document.getElementById(d1); my

13、Div.onclick = parentCliked; d1.addEventListener(click,childClicked1); d1.addEventListener(click,childClicked2); 复制代码打印出:child clicked1child clicked24.3 stopImmediatePropagation():取消冒泡,监测该事件的其他监听器都停止工作只有使用addEventListener方法添加的监听器,该属性才有效复制代码 function parentCliked(ev) console.log(parent clicked); var e

14、v = ev ? ev : window.event; function childClicked1(ev) console.log(child clicked1); var ev = ev ? ev : window.event; ev.stopImmediatePropagation(); function childClicked2(ev) console.log(child clicked2); var ev = ev ? ev : window.event; var myDiv = document.getElementById(myDiv); var d1 = document.g

15、etElementById(d1); myDiv.onclick = parentCliked; d1.addEventListener(click,childClicked1); d1.addEventListener(click,childClicked2); 复制代码打印出:child clicked14.4 cancelable和preventDefault();preventDefault()方法阻止默认行为cancelable:返回boolean值,判断能否阻止默认行为(只读)只有使用addEventListener方法添加的监听器,该属性才有效复制代码click here var

16、 link = document.getElementById(aa); link.addEventListener(onclick,clickHandler); function clickHandler(ev) var ev = ev ? ev : window.event; ev.preventDefault(); 复制代码cancelable是只读的复制代码a id=aa href= here var link = document.getElementById(aa); link.addEventListener(click,clickHandler); function click

17、Handler(ev) var ev = ev ? ev : window.event; console.log(ev.cancelable);/true ev.cancelable = false; ev.preventDefault(); console.log(ev.cancelable);/true 复制代码即使设置了cancelable=true,仍然能阻止默认行为 4.5 returnValue:是否取消默认行为,设置为false则取消默认行为 是IE浏览器特有的属性复制代码click here var link = document.getElementById(aa); lin

18、k.attachEvent(onclick,clickHandler); function clickHandler(ev) var ev = ev ? ev : window.event; ev.returnValue = false; 复制代码 复制代码click here var link = document.getElementById(aa); link.attachEvent(onclick,clickHandler); function clickHandler(ev) ev.returnValue = false; 复制代码 IE中:当使用attachEvent注册监听器时,

19、可以使用参数ev或者window.event来设置returnValue;当使用addEventListener注册监听器时IE 9,10 window.event.returnValue = false;或者ev.preventDefault();IE 11 ev.preventDefault()或者window.event.preventDefault();当使用obj.onclick = clickHandler形式时IE 9,10,11支持参数传递,但是参数ev对象中没有returnValue属性,通过ev参数来设置行不通IE 510 可以使用window.event.returnVa

20、lue = false来阻止默认行为IE 11: window.event没有returnValue属性,设置失败 综上:IE 浏览器 5,6,7,8,9,10都能使用attachEvent来注册监听,使用此方法生成的Event对象是具有IE 特性的对象,里面包含了cancelBubble,returnValue等IE标志IE 11废弃了对attachEvent的支持IE 9,10,11实现了对addEventListener的支持,该方法生成的Event对象是符合DOM标准的IE 9,10 的ev对象是DOM标准对象,window.event是IE 私有对象IE 11的ev对象和window.event都是DOM标准对象 DOM标准对象中没有IE 私有属性4.6 srcElement、target、currentTargetsrcElement只在IE浏览器中存在,不管以addEventListener还是attachEvent它指向触发事件的元素,而不是绑定事件的元素currentTarget和target:只有使用addEven

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1