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 相关文章推荐
[JS]点出统计器
Oct 11 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
Oct 11 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
js处理php输出时间戳对不上号的解决方法
Jun 20 Javascript
详解Javascript 装载和执行
Nov 17 Javascript
DOM基础教程之事件对象
Jan 20 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 Javascript
node使用async_hooks模块进行请求追踪
Jan 28 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中实现图片的锐化
2006/10/09 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
laravel安装和配置教程
2014/10/29 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
Python中函数的用法实例教程
2014/09/08 Python
初学Python函数的笔记整理
2015/04/07 Python
Python内置函数delattr的具体用法
2017/11/23 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
党员志愿者活动总结
2014/06/26 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
会计主管竞聘书
2015/09/15 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书