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 相关文章推荐
一个JQuery操作Table的代码分享
Mar 30 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
javascript break指定标签打破多层循环示例
Jan 20 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 jQuery
使用Vue实现调用接口加载页面初始数据
Oct 28 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
Nov 26 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
python if not in 多条件判断代码
2016/09/21 Python
windows下python安装pip图文教程
2018/05/25 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python内置函数property()如何使用
2020/09/01 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
书法比赛获奖感言
2014/02/10 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
服务标语口号
2014/07/01 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
上甘岭观后感
2015/06/10 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP