js中什么是事件冒泡?

更新日期: 2019-11-28阅读: 2k标签: 冒泡

在一个对象上触发某类事件,这个事件会向这个对象的的父级传播,从里到外,直至它被处理或者到达了对象层次的最顶层,即document对象。这个过程就是JavaScript的事件冒泡。


事件冒泡:

在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或事件返回true,那么这个事件会向这个对象的的父级传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者到达了对象层次的最顶层,即document对象。

事件冒泡示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js事件冒泡</title>
</head>
<style>
    .outSide{
        width:100px;
        height:100px;
        background:#000;
        padding:50px;
    }

    .inSide{
        width:100px;
        height:100px;
        background:#CCC
    }

</style>
<body>
<div onclick="outSideWork()" id="outSide">
    <div onclick="inSideWork()" id="inSide">
    </div>
</div>
</body>
    <script type="text/javascript">
        function outSideWork()
        {
            alert('My name is outSide,I was working...');
        }

    function inSideWork()
    {
        alert('My name is inSide,I was working...');
    }
        

</script>
</html>


事件冒泡的作用:

(1)事件冒泡允许多个操作被集中处理,(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子元素上),它还可以让你在对象层的不同级别捕获事件。

//本例子只在外面盒子定义了处理方法,而这个方法一样可以捕获到子元素点击行为并处理它。假设有成千上万子元素要处理,难道我们要为每个元素加“onclick="eventHandle(event)"”?显然没有这种集中处理的方法来的简单,同时它的性能也是更高的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js事件冒泡</title>
</head>
<style>
    .outSide{
        width:100px;
        height:100px;
        background:#000;
        padding:50px;
    }

    .inSide{
        width:100px;
        height:100px;
        background:#CCC
    }

</style>
<body>
    <div onclick="eventHandle(event)" id="outSide">
        <div id="inSide"></div>
    </div>
</body>
<script>
    function eventHandle(e){
      var e = e||window.event;
      var obj = e.target || e.srcElement;
      alert(obj.id +'was click!')
    }
</script>
</html>

链接: https://fly63.com/article/detial/7973

原生js实现冒泡排序算法,javascript冒泡排序

javascript冒泡排序的实现,冒泡排序是一个非常常见的排序算法,对于一个数组,每趟排序时依次比较两个相邻的数,如果他们的顺序错误就交换两数位置。

JavaScript实现的几种排序:冒泡排序、选择排序、插入排序、归并排序

原生js实现排序算法:冒泡排序、选择排序、插入排序、归并排序等

vue.js阻止事件冒泡和默认事件

首先我们来看原生JS取消事件冒泡方法:原生JS阻止默认事件方法:而vue.js给我们提供了更简便的方法,我们可以通过function($event)来获取事件对象,$event.target则是选择发生事件的目标元素

React 事件冒泡

在React中,我们可以在创建element的时候,传入事件和处理函数,这些事件会被做为合成事件来处理,当然,有些时候,我们也需要定义原生事件,比如给document绑定事件。有些情况下,就需要通过阻止事件冒泡来实现预期的交互效果。下面是几个简单的demo

Js阻止冒泡和取消默认事件(默认行为)

js冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件。

vue里面如何阻止事件冒泡 - 阻止click事件冒泡方法总汇

方法一:使用vue阻止子级元素的click事件冒泡。简单得:可以直接用stop;这样点击div里面的按钮1,就不会触发div绑定时间test1()方法。可以自己写个阻止冒泡事件 然后在发生冒泡的元素中调用这个事件

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!