JavaScript事件详细讲解


Posted in Javascript onJune 27, 2016

事件的概念

事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过侦听器(或者处理程序)来预定事件,以便事件发生的时候执行相应的代码。

一、事件流

1.事件流:描述的是在页面中接受事件的顺序

2.事件冒泡:由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档)

3.事件捕获:最不具体的节点先接收事件,而最具体的节点应该最后接收事件

二、事件处理

1.HTML事件处理:直接添加到HTML结构中

2.DOM0级事件处理:把一个函数赋值给一个事件处理程序属性

3.DOM2级事件处理:

addEventListener("事件名","事件处理函数",布尔值)

true:事件捕获

false:事件冒泡

removeEventListener();

4.IE事件处理程序

attachEvent

detachEvent

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="div">
<button id="btn1">按钮</button>
</div>
<!--<script>
function demo(){
alert("Hello HTML事件处理");
}
</script>-->
<!--<script>
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){alert("Hello DOM0级事件处理程序")};//被覆盖掉
btn1.onclick = function(){alert("Hello DOM0级事件处理程序2")};
btn1.onclick = function(){alert("Hello DOM0级事件处理程序3")};
</script>-->
<!--<script>
var btn1 = document.getElementById("btn1");
btn1.addEventListener("click",demo1);
btn1.addEventListener("click",demo2);
btn1.addEventListener("click",demo3);
function demo1(){
alert("DOM2级事件处理程序1");
}
function demo2(){
alert("DOM2级事件处理程序2");
}
function demo3(){
alert("DOM2级事件处理程序3");
}
btn1.removeEventListener("click",demo2)
</script>-->
<script>
var btn1 = document.getElementById("btn1");
if(btn1.addEventListener){
btn1.addEventListener("click",demo);
}else if(btn1.attachEvent){
btn1.attachEvent("onclick",demo)
}else{
btn1.onclick = demo();
}
function demo(){
alert("Hello");
}
</script>
</body>
</html>

三、事件对象

1、事件对象:在触发DOM事件的时候都会产生一个对象

2、事件对象event:

type:获取事件类型

target:获取事件目标

stopPropagation():阻止事件冒泡

preventDefault():阻止事件默认行为

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="div">
<button id="btn1">按钮</button>
<a href="http://www.baidu.com" id="aid">百度</a>
</div>
<script>
document.getElementById("btn1").addEventListener("click",showType);
document.getElementById("div").addEventListener("click",showDiv);
document.getElementById("aid").addEventListener("click",showA);
function showType(event){
// alert(event.type);
alert(event.target);
event.stopPropagation();//阻止事件冒泡
}
function showDiv(){
alert("div")
}
function showA(event){
// event.stopPropagation();
// event.preventDefault();
}
</script>
</body>
</html>
Javascript 相关文章推荐
JavaScript创建一个欢迎cookie弹出窗实现代码
Mar 15 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
JS获得选取checkbox整行数据的方法
Jan 28 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
Angular6项目打包优化的实现方法
Dec 15 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
JS原型链怎么理解
Jun 27 #Javascript
js选择器全面解析
Jun 27 #Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 #Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 #Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 #Javascript
全面了解javascript三元运算符
Jun 27 #Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 #Javascript
You might like
PHP session有效期问题
2009/04/26 PHP
PHP学习之数组值的操作
2011/04/17 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
关于document.cookie的使用javascript
2010/10/29 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
13个最常用的Python深度学习库介绍
2017/10/28 Python
Python简单I/O操作示例
2019/03/18 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
会计出纳员的自我评价
2014/01/15 职场文书
班长演讲稿范文
2014/04/24 职场文书
计生工作先进事迹
2014/08/15 职场文书
销售活动策划方案
2014/08/26 职场文书
科学发展观活动总结
2014/08/28 职场文书
国庆横幅标语
2014/10/08 职场文书
初中优秀学生评语
2014/12/29 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js