javaScript事件学习小结(四)event的公共成员(属性和方法)


Posted in Javascript onJune 09, 2016

相关阅读:

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

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、stopPropagation()和stopImmediatePropagation()对比

同:stopPropagation()和 stopImmediatePropagation()都可以用来取消事件的进一步捕获或冒泡。

异:二者的区别在于当一个事件有多个事件处理程序时,stopImmediatePropagation()可以阻止之后事件处理程序被调用。

举例:

<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.stopPropagation();//取消注释查看效果
// event.stopImmediatePropagation();//取消注释查看效果
 },false);
 btn.addEventListener("click",function(){
 console.log("button click listened twice");
 },false);
 document.body.onclick= function (event) {
 console.log("body clicked");
 }
</script>
</body>

运行效果:

javaScript事件学习小结(四)event的公共成员(属性和方法)

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>

运行效果:

javaScript事件学习小结(四)event的公共成员(属性和方法)

2、IE中event的公共成员

IE中的event的属性和方法和DOM一样会随着事件类型的不同而不同,但是也有一些是所有对象都有的公共成员,且这些成员大部分有对应的DOM属性或方法。

javaScript事件学习小结(四)event的公共成员(属性和方法)

以上所述是小编给大家介绍的javaScript事件学习小结(四)event的公共成员(属性和方法)的相关知识,希望对大家有所帮助,如果大家有疑问欢迎给我留言!

Javascript 相关文章推荐
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
May 24 Javascript
JavaScript中 DOM操作方法小结
Apr 25 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
Jul 30 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
Sep 29 Javascript
详解基于webpack&amp;gettext的前端多语言方案
Jan 29 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 #Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 #Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 #Javascript
JS实现星星评分功能实例代码(两种方法)
Jun 09 #Javascript
Node.js中npm常用命令大全
Jun 09 #Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 #Javascript
Active控件问题小结(附解决办法)
Jun 09 #Javascript
You might like
深入解析php之apc
2013/05/15 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
Vuex简单入门
2017/04/19 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python下Fabric的简单部署方法
2015/07/14 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Python接口开发实现步骤详解
2020/04/26 Python
sklearn的predict_proba使用说明
2020/06/28 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
四年的个人工作自我评价
2013/12/10 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
超市店庆活动方案
2014/08/31 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
婚前协议书范本两则
2014/10/16 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python