js的捕捉事件,冒泡事件
冒泡事件可以查询上个随笔,
捕捉事件正好和冒泡时间正反着
所以这代码我把冒泡事件注释,
html和css的内容
<style type="text/css">
#box1{width:500px;height:500px;background:#900;}
#box2{width:400px;height:400px;background:#090;}
#box3{width:300px;height:300px;background:#009;}
#box4{width:200px;height:200px;background:#990;}
#box5{width:100px;height:100px;background:#099;}
</style> <body>
<div id="box1">
<div id="box2">
<div id="box3">
<div id="box4">
<div id="box5"> </div>
</div>
</div>
</div>
</div>
js部分代码
<script>
window.onload=function()
{
//监听事件
var $=function(_id){return document.getElementById(_id);}
document.addEventListener("click", function(){alert("捕抓中,你点击了document")}, true);
document.body.addEventListener("click", function(){alert("捕抓中,你点击了body")}, true);
$("box1").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
$("box2").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
$("box3").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
$("box4").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true);
// $("box5").addEventListener("click", function(){alert("捕抓中,你点击了id为:"+this.id +"的div")}, true); //冒泡事件
// var $=function(_id){return document.getElementById(_id);}
// document.addEventListener("click", function(){alert("冒泡中,你点击了document")}, false);
// document.body.addEventListener("click", function(){alert("冒泡中,你点击了body")}, false);
// $("box1").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
// $("box2").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
// $("box3").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
// $("box4").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false);
// // $("box5").addEventListener("click", function(){alert("冒泡中,你点击了id为:"+this.id +"的div")}, false); //删除监听事件,必须完全一样
var del =function(){alert("冒泡中,你点击了id为: "+this.id +"的div")}
$("box5").addEventListener("click", del, false);
// $("box5").removeEventListener("click",del, false); //ie用的是attachEvent() 和detachEvent() 都有两个参数 ie11也不支持了
// $("box5").attachEvent("onclick",del);
// $("box5").detachEvent("onclick",del); }
</script>
其实捕捉监听事件和冒泡事件只是函数的一个参数不同,一个true,一个false。
其实主要有时候我们实现某些功能时,需要移除捕捉和冒泡事件。
js的捕捉事件,冒泡事件的更多相关文章
- 理解js事件冒泡事件委托事件捕获
js事件冒泡 javascript的事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止,这就是事件冒泡现象. <di ...
- js --- 事件冒泡 事件捕获
先上结论: 他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件冒泡是自下而上的去触发事件.绑定事件方法的第三个参数,就是控制事 ...
- JavaScript和JQuery中的事件\委托链\事件冒泡\事件捕获,兼容所有浏览器
有做过北大青鸟培训讲师经验的我,如今在一家公司做技术部经理的职位,发现有很多程序员的基本功相当糟糕,在组织企业内部培训时讲解了一些案例,总结了一些经典代码,希望对自己和有需要的人提供一些帮助吧: Ja ...
- 【事件流】浅谈事件冒泡&&事件捕获------【巷子】
首先在扯淡的时候我们需要先了解一个东西,这个东西就是事件流. 1.什么是事件流? 解释:当一个HTML元素触发一个事件处理函数的时候,该事件会在该元素节点到根节点之间传播,传播路径所经过的节点都会接受 ...
- jQuery--事件, 事件绑定, 阻止事件冒泡, 事件委托,页面载入后函数
1.常用事件, 按住shift键实现同步选择效果,搜索框联想效果 2.阻止事件冒泡 3.事件委托 4.使用 $(document).ready(function (){...}) 实现文件加载完绑定事 ...
- jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。
冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...
- javaScript的事件冒泡事件捕获
(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div ...
- DOM 事件监听 事件冒泡 事件捕获
addEventListener() 方法 实例: // 当用户点击按钮时触发监听事件: document.getElementById("myBtn").addEventList ...
- js中事件冒泡,事件捕获详解
一.事件流 事件是js与HTML交互的基础,事件流描述的是页面接受事件的顺序,而事件流又分为三个阶段:捕获阶段.目标阶段和冒泡阶段. 如果单纯的事件处理,事件捕获和事件冒泡二选一即可,导致两者并存的原 ...
随机推荐
- python安装psycopg2
vim ~/.bash_profile export PATH=/Applications/Postgres.app/Contents/Versions/9.4/bin/:$PATH pip inst ...
- python正则表达式的学习记录
match和findall的区别以及有括号和无括号的区别 strvar = "hello\n\nworld" find_re = re.compile("hello[.| ...
- VBA相关
--能否彻底隐藏某行或某列 用代码隐藏列,将其放在Private Sub Worksheet_SelectionChange(ByVal Target As Range)Columns(1).Enti ...
- MongoDB 3.0 导入命令
在MongoDB的bin目录下执行 ./mongoimport -h 192.168.77.129 --db test --collection restaurants --drop --file / ...
- mysql基础语法之(全文索引)
1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引.对于FULLTEXT索引的内容可以使用MATCH()…AGAIN ...
- [Flex] PopUpButton系列 —— 打开和关闭弹出菜单
<?xml version="1.0" encoding="utf-8"?><!--响应打开和关闭弹出菜单的例子 PopUpButtonOpe ...
- [ActionScript] AS3 绘制虚线
import flash.geom.Point; import flash.display.MovieClip; import flash.display.Graphics; function dra ...
- oracle—无法启动
pl/sql连接oracle,出现下列错误,即没有启动该数据库的监听程序 启动该数据库的监听程序,出现如下错误,即未配置监听器 配置监听器
- centos设置开机自启动
编辑 /etc/rc.d/rc.local 将要开启的服务添加到该文件即可
- lambda表达式、内置函数、进制和文件操作
lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...