javaScript事件学习小结(四)event的公共成员(属
相关阅读
JavaScript事件学习小结(五)js中事件类型之鼠标事件
JavaScript事件学习小结(一)事件流
javaScript事件学习小结(四)event的公共成员(属性和方法)
JavaScript事件学习小结(二)js事件处理程序
JavaScript事件学习小结(三)js事件对象
一、事件对象的公共成员
1、DOM中的event的公共成员
event对象包含与创建它的特定事件有关的属性和方法。触发的事件类型不一样,可用的属性和方法不一样。,DOM中所有事件都有以下公共成员。
a、对比currentTarget和target
在事件处理程序内部,对象this始终等于currentTarget的值,而target则只是包含事件的实际目标。
举例页面有个按钮,在body(按钮的父节点)中注册click事件,点按钮时click事件会冒泡到body进行处理。
<body> <input id="btn" type="button" value="click"/> <script> document.body.onclick=function(event){ console.log("body中注册的click事件"); console.log("this===event.currentTarget? "+(this===event.currentTarget)); //true console.log("currentTarget===document.body?"+(event.currentTarget===document.body)); //true console.log('event.target===document.getElementById("btn")? '+(event.target===document.getElementById("btn"))); //true } </script> </body>
运行结果为
b、通过type属性,可以在一个函数中处理多个事件。
原理通过检测event.type属性,对不同事件进行不同处理。
举例定义一个handler函数用来处理3种事件click,mouseover,mouseout。
<body> <input id="btn" type="button" value="click"/> <script> var handler=function(event){ switch (event.type){ case "click": alert("clicked"); break; case "mouseover": event.target.style.backgroundColor="pink"; break; case "mouseout": event.target.style.backgroundColor=""; } }; var btn=document.getElementById("btn"); btn.onclick=handler; btn.onmouseover=handler; btn.onmouseout=handler; </script> </body>
运行效果点击按钮,弹出框。鼠标经过按钮,按钮背景色变为粉色;鼠标离开按钮,背景色恢复默认。
c、sPropagation()和sImmediatePropagation()对比
同sPropagation()和 sImmediatePropagation()都可以用来取消事件的进一步捕获或冒泡。
异二者的区别在于当一个事件有多个事件处理程序时,sImmediatePropagation()可以阻止之后事件处理程序被调用。
举例
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.addEventListener("click",function(event){ console.log("buttn click listened once"); // event.sPropagation();//取消注释查看效果 // event.sImmediatePropagation();//取消注释查看效果 },false); btn.addEventListener("click",function(){ console.log("button click listened twice"); },false); document.body.onclick= function (event) { console.log("body clicked"); } </script> </body>
运行效果
d、eventPhase
eventPhase值在捕获阶段为1,处于目标阶段为2,冒泡阶段为3。
例子
<body> <input id="btn" type="button" value="click"/> <script> var btn=document.getElementById("btn"); btn.onclick= function (event) { console.log("按钮DOM0级方法添加事件处理程序eventPhase值为?"+event.eventPhase); } btn.addEventListener("click",function(event){ console.log("按钮DOM2级方法添加事件处理程序,且addEventListener第三个参数为true时eventPhase值为?"+event.eventPhase); },true); btn.addEventListener("click",function(event){ console.log("按钮DOM2级方法添加事件处理程序,且addEventListener第三个参数为false时eventPhase值为?"+event.eventPhase); },false); document.body.addEventListener("click", function (event) { console.log("body上添加事件处理程序,且在捕获阶段eventPhase值为?"+event.eventPhase); },true); document.body.addEventListener("click", function (event) { console.log("body上添加事件处理程序,且在冒泡阶段eventPhase值为?"+event.eventPhase); },false); </script>
运行效果
2、IE中event的公共成员
IE中的event的属性和方法和DOM一样会随着事件类型的不同而不同,也有一些是所有对象都有的公共成员,且这些成员大部分有对应的DOM属性或方法。
以上所述是长沙网络推广给大家介绍的javaScript事件学习小结(四)event的公共成员(属性和方法)的相关知识,希望对大家有所帮助,如果大家有疑问欢迎给我留言!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程