今天呢,来讲一个知识点,叫做Javascript的事件冒泡(Bubble),什么叫事件冒泡,就是指某件事件的向上传导,当后代元素被触发,其祖先元素也会被同样触发,这就是事件冒泡,光说不行,还得先演示一下。
首先,我们先创建一个“HTML”文档,在头部部分写上一个内联样式“style”,给“body”一个背景颜色,在“body”部分写上两个“div”给他们写上一个“ID”名(取名随意)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=8a67122644d8bc3ec60806c2b28aa6c8/c7b1260e4bfbfbed4d82916325f0f736aec31ff7.jpg?tbpicau=2025-03-02-05_3b1c62b3b814f56f070336b3166c0e1e)
再创建两个不同大小的方块也给他们一个背景颜色(这里大小 颜色随意),就像这样:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=bce58d191766d0167e199e20a72ad498/808b887a02087bf48fef593db7d3572c10dfcf87.jpg?tbpicau=2025-03-02-05_2673ba95f55bf9d53ef6fa94cbb6c4e6)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=3a74eaf736f082022d9291377bfafb8a/bb89dbef3d6d55fb25c478f228224f4a21a4dd80.jpg?tbpicau=2025-03-02-05_3c5ba449ce18dca1e89bbd4bd3d00b44)
然后就开始“JS”部分,写一个“script”的内联样式(因为代码较少,所以选择内联)后准备我们的事件冒泡,首先,获取“body”和两个“div”,分别给他们三个一个“点击事件”,(注意,“body”是可以直接获取也可以给他加个“ID”),再写上“alert”标签(alert 表弹窗)就像这样:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=b600ab2d7c3fb80e0cd161df06d02ffb/02237addd100baa17af8e0a71a10b912c9fc2ef2.jpg?tbpicau=2025-03-02-05_2f8e4f918147875e730e379474501361)
当我们点击“绿色部分”也就是box所在的div标签,就会弹出提示框,然而它并没有停下来,而是继续弹出下一个提示框wrap所在的div标签,直到body部分的提示框出现才彻底停下来。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=d5a94ded0e36acaf59e096f44cd88d03/4cd62587c9177f3e794ff2d935cf3bc79e3d568e.jpg?tbpicau=2025-03-02-05_4c4d099d0e80cd53161aabef719f0298)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=2f62837dec014c08193b28ad3a7a025b/8d26d142fbf2b21155558b9a8f8065380dd78e8f.jpg?tbpicau=2025-03-02-05_d0a6d99d1fa811149fedc8c33aa1296c)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=af1288fdaec4b7453494b71efffd1e78/91ed55cb7bcb0a46575885ed2e63f6246a60af88.jpg?tbpicau=2025-03-02-05_644638363bd99471ccdf381fb2296028)
而这也就是Javascript的事件冒泡,在大部分的开发过程中事件冒泡还是很有用,如果不想冒泡出现的话,也可以用一句话来取消,我们先在box所在的div的点击事件中的function函数括号里写上一个参数“event”,后在此点击事件中写上“event.cancelBubble = true”,这句话的意思也就是这个点击事件中的冒泡会被取消(其中浏览器中的默认值为false),当再次点击这一个就只会出现它这一个弹窗。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=1551d020f24543a9f51bfac42e168a7b/4ad4f9ca0a46f21f18415087b3246b600d33ae89.jpg?tbpicau=2025-03-02-05_61f69e6b5a1622dd5429cec3d07b3cdc)
最后就是兼容性的问题,这种写法在IE8及以下的浏览器都是不能使用的,如果要在这上面使用就得加上这句代码“event = event ||window.event”。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=7fae0d356a2eb938ec6d7afae56385fe/ef95c511b912c8fce887f819b9039245d7882189.jpg?tbpicau=2025-03-02-05_814a35a246726fd00cae7ea8e39280d6)
这是我所做的Javascript的事件冒泡制作步骤,所以我要分享给你们,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教。如果有新的bug或不懂得地方欢迎在评论区指出和提问喔!
首先,我们先创建一个“HTML”文档,在头部部分写上一个内联样式“style”,给“body”一个背景颜色,在“body”部分写上两个“div”给他们写上一个“ID”名(取名随意)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=8a67122644d8bc3ec60806c2b28aa6c8/c7b1260e4bfbfbed4d82916325f0f736aec31ff7.jpg?tbpicau=2025-03-02-05_3b1c62b3b814f56f070336b3166c0e1e)
再创建两个不同大小的方块也给他们一个背景颜色(这里大小 颜色随意),就像这样:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=bce58d191766d0167e199e20a72ad498/808b887a02087bf48fef593db7d3572c10dfcf87.jpg?tbpicau=2025-03-02-05_2673ba95f55bf9d53ef6fa94cbb6c4e6)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=3a74eaf736f082022d9291377bfafb8a/bb89dbef3d6d55fb25c478f228224f4a21a4dd80.jpg?tbpicau=2025-03-02-05_3c5ba449ce18dca1e89bbd4bd3d00b44)
然后就开始“JS”部分,写一个“script”的内联样式(因为代码较少,所以选择内联)后准备我们的事件冒泡,首先,获取“body”和两个“div”,分别给他们三个一个“点击事件”,(注意,“body”是可以直接获取也可以给他加个“ID”),再写上“alert”标签(alert 表弹窗)就像这样:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=b600ab2d7c3fb80e0cd161df06d02ffb/02237addd100baa17af8e0a71a10b912c9fc2ef2.jpg?tbpicau=2025-03-02-05_2f8e4f918147875e730e379474501361)
当我们点击“绿色部分”也就是box所在的div标签,就会弹出提示框,然而它并没有停下来,而是继续弹出下一个提示框wrap所在的div标签,直到body部分的提示框出现才彻底停下来。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=d5a94ded0e36acaf59e096f44cd88d03/4cd62587c9177f3e794ff2d935cf3bc79e3d568e.jpg?tbpicau=2025-03-02-05_4c4d099d0e80cd53161aabef719f0298)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=2f62837dec014c08193b28ad3a7a025b/8d26d142fbf2b21155558b9a8f8065380dd78e8f.jpg?tbpicau=2025-03-02-05_d0a6d99d1fa811149fedc8c33aa1296c)
![](http://tiebapic.baidu.com/forum/w%3D580/sign=af1288fdaec4b7453494b71efffd1e78/91ed55cb7bcb0a46575885ed2e63f6246a60af88.jpg?tbpicau=2025-03-02-05_644638363bd99471ccdf381fb2296028)
而这也就是Javascript的事件冒泡,在大部分的开发过程中事件冒泡还是很有用,如果不想冒泡出现的话,也可以用一句话来取消,我们先在box所在的div的点击事件中的function函数括号里写上一个参数“event”,后在此点击事件中写上“event.cancelBubble = true”,这句话的意思也就是这个点击事件中的冒泡会被取消(其中浏览器中的默认值为false),当再次点击这一个就只会出现它这一个弹窗。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=1551d020f24543a9f51bfac42e168a7b/4ad4f9ca0a46f21f18415087b3246b600d33ae89.jpg?tbpicau=2025-03-02-05_61f69e6b5a1622dd5429cec3d07b3cdc)
最后就是兼容性的问题,这种写法在IE8及以下的浏览器都是不能使用的,如果要在这上面使用就得加上这句代码“event = event ||window.event”。
![](http://tiebapic.baidu.com/forum/w%3D580/sign=7fae0d356a2eb938ec6d7afae56385fe/ef95c511b912c8fce887f819b9039245d7882189.jpg?tbpicau=2025-03-02-05_814a35a246726fd00cae7ea8e39280d6)
这是我所做的Javascript的事件冒泡制作步骤,所以我要分享给你们,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教。如果有新的bug或不懂得地方欢迎在评论区指出和提问喔!