首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    事件冒泡 、阻止冒泡事件捕获 之前先说说什么是事件流,这样会更容易明白 一、事件事件流 1、什么是事件 事件是可以被 JavaScript 侦测到的行为。...一个完整的JS事件流是从window开始,最后回到window的一个过程。 事件流被分为三个阶段(1~ 5)捕获过程、(5~ 6)事件触发过程、(6~ 10)冒泡过程。...二、事件冒泡 看了上面的那张图应该对事件冒泡有了大概的了解了吧。总结来说就是: 当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window。...三、阻止冒泡 1、JS阻止事件冒泡 我们用 e.stopPropagation() 这个方法添加到某事件函数里的末尾,就可以做到阻止冒泡事件。...2、JQ阻止事件冒泡 jq阻止事件冒泡就简单了,直接在事件函数里面添加 return false; 就行了。

    14.5K64

    JS事件冒泡和捕获

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

    2.5K20

    JS篇(028)-移动端 click 事件、touch 事件、tap 事件的区别

    参考答案: 1.click 事件在移动端会有 200-300ms 的延迟,主要原因是苹果手机在设计时,考虑到用户在浏览网页时需要放大,所以,在用户点击的 200-300ms 之后,才触发 click,...如果 200-300ms 之内还有 click,就会进行放大缩小。...mouseover mouseup 的触发 3.tap 事件在移动端,代替 click 作为点击事件,tap 事件被很多框架(如 zepto)封装,来减少这延迟问题, tap 事件不是原生的,所以是封装的...display: none,而从上面的 tap 可以看出,有 touchstart、touchend,所以会 300ms 之后触发 click 事件,而 z-index 已经消失了,所以,触发了下面的...a 的 click 事件,注意: 我们认为 a 标签默认是绑定了 click 事件的。

    6.4K40

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

    说到js事件大家肯定都知道,那么今天讲一点大家不知道的(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...例如:单击事件直接可以写成click。 function:回调函数,表示事件触发后要执行的函数。 useCapture:布尔值 true 或 false 不传的话默认为false 。...("click",function(e){ console.log("inner冒泡阶段"); },false); <...并且事件的触发是先捕获,在冒泡。 阻止事件冒泡 事件冒泡会让我们实现某些功能的时候产生阻碍,那么我们怎么怎么阻止事件冒泡呢,这个时候就会用到一个方法。...我们会分别给信息的div和删除button添加一个冒泡click事件监听。如果不做阻止传递,点击删除button后,会显示商品详情。显然这不是我们想看到的。

    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

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

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

    89210

    事件冒泡事件捕获

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

    1.7K10
    领券