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 相关文章推荐
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
Nov 14 Javascript
Function.prototype.call.apply结合用法分析示例
Jul 03 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
最简单的JavaScript图片轮播代码(两种方法)
Dec 18 Javascript
jQuery选择器基础入门教程
May 10 Javascript
详解Javascript数据类型的转换规则
Dec 12 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
手把手教你如何编译打包video.js
Dec 09 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
php数组去重的函数代码
2013/02/03 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
ext读取两种结构的xml的代码
2008/11/05 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
浅析vue-router原理
2018/10/19 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
面试自我评价范文
2014/09/17 职场文书
代收款委托书范本
2014/10/01 职场文书