
事件流中的事件冒泡
发布日期:2021-05-06 19:35:35
浏览次数:15
分类:技术文章
本文共 1175 字,大约阅读时间需要 3 分钟。
1. 事件冒泡的概念
事件函数绑定: 给**加事件,给元素加事件处理函数。举个栗子。
//oDiv1.onclick = fn1; 事件函数绑定。告诉div1,如果他接收到了一个点击事件,那么他就去执行fn1 //我在马路边捡到一分钱,把他交个警察叔叔 我.on马路边捡到一分钱 = function() { 把他交个警察叔叔 }
事件冒泡 : 当一个元素接收到事件的时候,会把他接收到的所有传播给他的父级,一直到顶层window.事件冒泡机制。
可以通过下面这个例子了解一下。假如oDiv2.onclick = fn1;不注销的话,我们点击oDiv3,会依次弹出div3,div2,div1。当我们注销这行代码的话,会依次弹出div3,div1。此处虽然oDiv2没有触发事件,但是它向上传播到div3。2. 关于阻止事件冒泡
阻止冒泡 : 当前要阻止冒泡的事件函数中调用 event.cancelBubble = true;
可以看下面这个例子,我们想点击按钮,然后让div显示出来如下所示,点击按钮,没有任何反应。因为oBtn会把这个事件传播到它的父级,一直到document,所以会触发document.onclick,导致执行了oDiv.style.display = ‘none’;所以div显示不出来
针对上面的问题可以将
document.onclick = function() { oDiv.style.display = 'none'; }
变成下面这种写法,这样就可以过上1s中显示出来
document.onclick = function() { setTimeout(function() { oDiv.style.display = 'none'; }, 1000); oDiv.style.display = 'none'; }
关于这个问题可以通过阻止事件冒泡实现
3. 事件冒泡的好处
由于事件冒泡的机制,所以我们可以把绑定在子级的事件直接绑定在父级上,如下所示。我们希望点击黑色div,红色div会出现,离开红色和黑色的地方,红色div消失。
这个时候可以用事件冒泡,我们把鼠标移到黑色div上面,它不执行这个事件,但是会把这个事件传播到它的父级红色div上,从而触发红色div的移入事件,同理,从红色移开也会触发移开事件,从红色移开则直接触发红色的移开事件分享到
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月17日 23时28分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
中科大-凸优化 笔记(lec45)-强凸性等价不等式
2019-03-04
linux 中 alien命令的使用
2019-03-04
【论文泛读29】关系抽取:卷积神经网络的视角
2019-03-04
shell 中的 set命令 -e -o 选项作用
2019-03-04
Python中JSON的基本使用
2019-03-04
函数的默认参数值,即在定义参数的时候给它一个默认值
2019-03-04
c++流迭代器的一个错误和分析(第二段代码)
2019-03-04
ubuntu install baidu inputmethod
2019-03-04
程序员建议(忘记从哪里转的了,反正是csdn上的一个兄弟)
2019-03-04
电脑重装系统后提示invalid partition table怎么解决
2019-03-04
c++ primer 5th 练习11.9自己编写的答案
2019-03-04
web实现断点续传
2019-03-04
自定义BootstrapTable扩展:分页跳转到指定页码
2019-03-04
Python3逻辑运算符
2019-03-04
【学习笔记】欧拉函数,欧拉公式
2019-03-04
Python3序列
2019-03-04
vue-cli中找不到jquery的原因,以使用ztree为例
2019-03-04
React中设置404页面
2019-03-04
BootstrapValidator手动触发部分验证
2019-03-04
vue调试工具vue-devtools安装及使用
2019-03-04