首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js事件冒泡

什么冒泡? DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。...事件冒泡**(***dubbed bubbling***)**:与事件捕获恰恰相反,事件冒泡顺序由内到外进行事件传播,直到根节点。...dom标准事件流的触发的先后顺序为:先捕获再冒泡,即当触发dom事件时,会先进行事件捕获,捕获到事件源之后通过事件传播进行事件冒泡。...语法: addEventListener(event, function, useCapture) 参数 event 必须的,表示监听的事件,例如 click, touchstart 等,就是之前不加前缀...参数 useCapture 选填的,填true或者false,用于描述事件冒泡还是捕获,true表示捕获,默认的false表示冒泡

11.8K42
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js事件防止冒泡

    大家好,又见面了,我全栈君。 1. 事件目标 如今。事件处理程序中的变量event保存着事件对象。而event.target属性保存着发生事件的目标元素。...这个属性DOM API中规定的,可是没有被全部浏览器实现 。 jQuery对这个事件对象进行了必要的扩展,从而在不论什么浏览器中都能够使用这个属性。...可是,单击标签相同什么也不会发生,由于它也是一个后代元素。实际上。我们能够不把检查代码放在这里,而是通过改动button的行为来达到目标 。 2. ...停止事件传播 事件对象还提供了一个.stopPropagation()方法,该方法能够全然阻止事件冒泡。...事件传播和默认操作相互独立的两套机制,在二者不论什么一方发生时,都能够终止还有一方。假设想要同一时候停止事件传播和默认操作,能够在事件处理程序中返回false。

    2.5K40

    JS事件冒泡及阻止

    事件冒泡及阻止 当一个元素接收到事件的时候,会把他接收到的事件传给自己的父级,一直到window,当然其传播的事件,绑定的执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现...事件冒泡的原因事件源本身可能没有处理事件的能力,即处理事件的函数并未绑定在该事件源上。它本身并不能处理事件,所以需要将事件传播出去,从而能达到处理该事件的执行函数。...DOCTYPE html> JS事件冒泡及阻止 div{...有时候我们并不希望事件冒泡而去执行上级节点绑定的事件,这时候就需要阻止事件冒泡,w3c的方法e.stopPropagation(),IE则是使用 window.event.cancelBubble...注意 不是所有的事件都能冒泡。以下事件冒泡:blur、focus、load、unload。 事件解决方案方式在不同浏览器,可能有所区别的,有些不支持捕获型方案,多数浏览器默认冒泡型方案。

    6.6K20

    JS事件流、事件冒泡、阻止冒泡事件捕获(一看就懂)

    事件冒泡 、阻止冒泡事件捕获 之前先说说什么事件流,这样会更容易明白 一、事件事件流 1、什么事件 事件可以被 JavaScript 侦测到的行为。...鼠标点击、鼠标移动、鼠标滚动、按下键盘,浏览器窗口大小的改变,网页加载完成,关闭网页等等都会发生事件。 2、什么事件事件流,描述的页面中接受事件的顺序。...一个完整的JS事件从window开始,最后回到window的一个过程。 事件流被分为三个阶段(1~ 5)捕获过程、(5~ 6)事件触发过程、(6~ 10)冒泡过程。...用代码感受下一下什么事件冒泡: 实例图...三、阻止冒泡 1、JS阻止事件冒泡 我们用 e.stopPropagation() 这个方法添加到某事件函数里的末尾,就可以做到阻止冒泡事件

    14.5K64

    JS事件冒泡和捕获

    事件机制 ---- 事件触发三个阶段: window往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件事件触发处往window传播,遇到注册的冒泡事件会触发 事件触发一般会按照...|------------------------------------------- 但是有一个特例:如果给body中的子节点同时注册冒泡和捕获事件事件触发会按照注册的顺序执行。...// 以下会先打印冒泡然后捕获node.addEventListener( 'click', event => { console.log('冒泡') }, false)node.addEventListener...此时进入冒泡阶段,inner上的时间处理器得到执行 事件命中元素后开始向上冒泡,一路查找是否注册了冒泡阶段的祖先元素上的时间处理器。由于没有找到因此什么也没发生。...最后的结果 // logdocument clicked! outer clicked! inner clicked!

    2.5K20

    JS事件,你真的懂吗(捕获,冒泡)?

    说到js事件大家肯定都知道,那么今天讲一点大家不知道的(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...,他的原理监听,当有事件触发的时候它就会做出相应的动作 参数 addEventListener(event,function,useCapture); event:字符串,表示需要监听的事件事件前面不用加...然后inner冒泡阶段 最后outer冒泡阶段 由此我们可以看到,事件触发的时候实际上都是有捕获和冒泡阶段的,并且捕获阶段会从最外层的父级元素开始捕获,一直捕获到最后触发事件的那个元素点才会停止,...并且事件的触发先捕获,在冒泡。 阻止事件冒泡 事件冒泡会让我们实现某些功能的时候产生阻碍,那么我们怎么怎么阻止事件冒泡呢,这个时候就会用到一个方法。...这样就成功的阻止了事件冒泡,是不是很神奇,那么我们阻止事件冒泡还有别的方法吗,答案肯定的,这时候就得了解一下我们的event对象了,我们打印一下event对象,如下: 打印发现当我们触发事件时,

    2.4K20

    vue.js中实现阻止事件冒泡

    当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。....stop 阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件 .prevent 阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交 .self 只有自己触发的自己才会执行...,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号 .capture 改变js默认的事件机制,默认冒泡,capture功能冒泡改为倾听模式 .once 事件设置为只执行一次,如 .click.prevent.once...阻止click事件冒泡(防止触发另一个事件)的方法 使用vue阻止子级元素的click事件冒泡。...方法二 可以自己写个阻止冒泡事件 然后在发生冒泡的元素中调用这个事件 @click="_stopPropagation($event)" methods:{ _stopPropagation

    6.5K10

    【说站】javascript事件冒泡什么

    javascript事件冒泡什么 说明 1、事件冒泡事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。 2、事件冒泡默认开启的,但可以通过js代码来控制事件冒泡。...特性 当触发我们的事件函数时,事件函数其实会接收到一个event对象,该对象上的stopPropagation()可以阻止事件冒泡。...当我们在我们的事件函数中执行event.stopPropagation()方法,那么事件冒泡到此就结束了。 并不是所有类型的事件都支持事件冒泡事件冒泡只会触发相同类型的事件函数。...实例 click me 如果你点击了页面中的元素,那么这个click事件会按照如下顺序传播: 1. 2. 3.... 4.document 以上就是javascript事件冒泡的介绍,希望对大家有所帮助。

    57020

    FLEXFLASH-冒泡事件与非冒泡事件

    运行程序 点击“内部BTN: 结果如图所示 大家可以看到 事件从外层容器到内层容器依次执行的 4....刷新页面 点击“外部BTN” 结果如图所示 因为事件的引发者没有在panl1中所以不会再触发panel1的事件了 以上说的都是非冒泡事件事件的执行顺序从外层容器到内层容器执行的 5....false 这样设置后就是冒泡事件事件的执行顺序从内层容器到外层容器执行的 6....如果即要捕捉非冒泡事件,又要捕捉冒泡事件 那么 创建事件的代码为 var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数...);//非冒泡监听 this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡监听 这样设置之后,事件先从外部执行到内部

    89210

    漫画:什么冒泡排序?

    ————— 当天上午 ————— 什么冒泡排序? 冒泡排序的英文Bubble Sort,一种最基础的交换排序。...而我们的冒泡排序之所以叫做冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。 具体如何来移动呢?...这时候,我们的冒泡排序的第一轮结束了。数列最右侧的元素9可以认为一个有序区域,有序区域目前只有一个元素。 下面,让我们来进行第二轮排序: 首先让5和6比较,发现5比6要小,因此元素位置不变。...原始的冒泡排序稳定排序。由于该排序算法的每一轮要遍历所有元素,轮转的次数和元素数量相当,所以时间复杂度O(N^2) 。...按照现有的逻辑,有序区的长度和排序的轮数相等的。比如第一轮排序过后的有序区长度1,第二轮排序过后的有序区长度2 ......

    28320

    事件冒泡事件捕获

    javascript 的事件捕获和事件冒泡之前一直没能弄明白,知道看到一个例子。...当石头到达池塘底部(事件被捕获)之后,产生了一个气泡,然后就开始了冒泡阶段 由底部(目标元素)产生的气泡,由内而外,不断向上冒泡,直到最外面(html标签)结束。...点击可查看示例 去示例中试一试便清楚了~ 处理事件 理解了事件的捕获和冒泡机制,对于事件处理就好办了。...,比如是在‘石头’下沉或者‘气泡’冒泡的过程中使之突然消失 事件代理: 从上面事件机制可以看出,如果没有外部干扰,在子节点上触发的事件,在捕获和冒泡最终都会经过父节点 因此,我们可以将事件处理函数绑定在父节点上面...这样做的好处一个可以不关心子元素同步还是异步的 另一个如果有多个子元素,可以不用绑定多个事件(在异步列表 click 事件中很常见)。

    1.7K10

    jquery 事件冒泡、阻止事件冒泡 - event.stopPropagation()

    什么事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播...,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器window)。...事件冒泡的作用 事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。...事件冒泡的示例 编写三个嵌套的div,同时绑定click事件,来演示事件冒泡。 ?...事件冒泡机制有时候不需要的,需要阻止掉,通过 event.stopPropagation() 来阻止 阻止上面点击黄色div的click()冒泡传递 ?

    6K41
    领券