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

js事件防止冒泡

事件目标 如今。事件处理程序中变量event保存着事件对象。而event.target属性保存着发生事件目标元素。这个属性是DOM API中规定,可是没有被全部浏览器实现 。...jQuery对这个事件对象进行了必要扩展,从而在不论什么浏览器中都能够使用这个属性。通过.target,能够确定DOM中首先接收到事件元素(即实际被单击元素)。...我们能够不把检查代码放在这里,而是通过改动button行为来达到目标 。 2. 停止事件传播 事件对象还提供了一个.stopPropagation()方法,该方法能够全然阻止事件冒泡。...这样行为与我们讨论事件处理程序不是同一个概念,它是单击锚元素默认操作。类似地,当用户在编辑完表单后按下回车键时。会触发表单submit事件,在此事件发生后,表单提交才会真正发生。...事件传播和默认操作是相互独立两套机制,在二者不论什么一方发生时,都能够终止还有一方。假设想要同一时候停止事件传播和默认操作,能够在事件处理程序中返回false。

2.5K40

解析Javascript事件冒泡机制

事件阐述不是本文重点,尚未了解朋友,可以访问W3school教程 进行了解,这将有助于更好地理解以下内容 。 2.冒泡机制 什么是冒泡呢?         ...原因就在于事件冒泡,点击span时候,span 会把产生事件往上冒泡,作为父节点div2 和 祖父节点div1也会收到此事件,于是会做出事件响应,执行响应函数。...类似地,对某一个节点而言,如果不想它现在处理事件继续往上冒泡的话,我们可以终止冒泡: 在相应处理函数内,加入  event.stopPropagation()   ,终止事件广播分发,这样事件停留在本节点...; } }); } 比较:          从事件传递上看:方法一在于取消事件冒泡,即当某些节点取消冒泡后,事件不会再传递;方法二在于不阻止冒泡,过滤需要处理事件...我们再来分析一下方法二:方法二原理是 元素收到事件后,判断事件是否符合要求,然后做相应处理,然后事件继续冒泡往上传递;         既然事件冒泡传递,那可不可以让某个父节点统一处理事件,通过判断事件发生地

59440

JS事件冒泡和捕获

事件机制 ---- 事件触发三个阶段: window往事件触发处传播,遇到注册捕获事件会触发 传播到事件触发处时触发注册事件事件触发处往window传播,遇到注册冒泡事件会触发 事件触发一般会按照...|------------------------------------------- 但是有一个特例:如果给body中子节点同时注册冒泡和捕获事件事件触发会按照注册顺序执行。...和outer上面,而且这两个事件处理函数useCapture选项为true,说明他们被注册在捕获阶段。...此时进入冒泡阶段,inner上时间处理器得到执行 事件命中元素后开始向上冒泡,一路查找是否注册了冒泡阶段祖先元素上时间处理器。由于没有找到因此什么也没发生。...我们把时间注册在冒泡阶段(addEventListeneruseCapture选项为false) var selector = document.querySelector.bind(document

2.5K20

JS事件冒泡及阻止

事件冒泡及阻止 当一个元素接收到事件时候,会把他接收到事件传给自己父级,一直到window,当然其传播事件,绑定执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现...事件冒泡原因是事件源本身可能没有处理事件能力,即处理事件函数并未绑定在该事件源上。它本身并不能处理事件,所以需要将事件传播出去,从而能达到处理该事件执行函数。...实例 当点击id为i3时,浏览器会依次弹出3 2 1,这就是事件冒泡,此正方形处于叶节点上,对其操作事件会向上进行冒泡,直到根节点。 JS事件冒泡及阻止 div{...有时候我们并不希望事件冒泡而去执行上级节点绑定事件,这时候就需要阻止事件冒泡,w3c方法是e.stopPropagation(),IE则是使用 window.event.cancelBubble

6.5K20

事件监听函数,以及事件捕获和冒泡机制

事件经过所有节点都会受到事件影响,这个传播过程被称为DOM事件流 true是捕获,false是冒泡,默认为冒泡事件 1.addEventListener()--添加事件监听函数 给元素添加一个事件...,但是要知道它代表意思 用布尔值来表示,true或者false,默认是false true表示在捕获阶段调用事件处理程序 false表示在冒泡阶段调用事件处理程序 根据图片可以看出,捕获阶段要先于冒泡阶段..."); } 1.优点:事件处理程序中代码,能够访问全局作用域中任何变量 2.缺点:时差问题、扩展作用域链在不同浏览器中会导致不同结果、html代码与js代码高度耦合 DOM0...= function test() { alert("DOM0级事件处理程序"); } 1.优点:代码简单,浏览器兼容性好,解决了html代码和js代码高度耦合问题...2.缺点:一个元素只能绑定一个事件处理函数,只会在事件冒泡中运行 DOM2级事件处理程序 该级别的事件处理程序,运用就是事件捕获和冒泡机制 测试

1.2K10

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

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

11.1K53

JavaScript系列之事件冒泡机制简介

JavaScript系列之事件冒泡机制 DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段,事件冒泡顺序是由内到外进行事件传播,事件冒泡是由IE开发团队提出来...听了简介介绍之后,您可能不理解,所以举个例子: js事件冒泡测试 <div id='content' onclick...、ulonclick、divonclick,contentonclick,从内到外执行,所以这个就是冒泡事件简单例子 最近也遇到了这种情况,所以就去网上搜索资料,简单学习一下,就是点击一个按钮时候...,竟然触发了两次,通过排查,发现了冒泡机制导致,解决方法是禁用事件冒泡机制 w3c方法是e.stopPropagation(),IE则是使用e.cancelBubble = true $(element...JavaScript 详说事件机制冒泡、捕获、传播、委托:https://www.cnblogs.com/bfgis/p/5460191.html

53920

js事件机制

从这个图里面我们可以清晰看到整个事件执行过程,首先是从window开始,一步步从上向下执行,此过程就是事件捕获阶段,当到达了事件位置以后则处于事件目标阶段,之后会在向上冒泡,进入事件冒泡阶段...触碰完成以后再把手拿出来,正好是一个相反过程,这就与我们事件机制是一个道理。 事件绑定 下面来看一下下面这个示例代码: <!...调用事件处理程序阶段:1 捕获;2 处于阶段;3 冒泡阶段;这个属性变化需要在断点中查看,不然你看到总是0 2 target 返回触发此事件元素(事件目标节点)。...如果说在事件捕获阶段,将子节点移除,那么子节点捕获和冒泡是否还会执行?...,所应用就是事件冒泡

1.5K20

深入理解JavaScript中事件传播机制事件冒泡事件捕获

前言在JavaScript中,事件冒泡事件捕获是两种不同事件传播方式。当一个事件被触发时,它会从最内层元素开始,然后逐级向外传播,直到最外层元素。...在这个过程中,事件会经过每一个元素,直到它到达最外层元素。这个过程就是事件冒泡。相反,事件捕获是从最外层元素开始,然后逐级向内传播,直到最内层元素。...正文内容事件冒泡事件冒泡是指当一个事件被触发时,它会从最内层元素开始,然后逐级向外传播,直到最外层元素。在这个过程中,事件会经过每一个元素,直到它到达最外层元素。...这是因为事件从文档最外层开始向内传播,然后经过外部div、内部div和按钮,直到它到达按钮。事件冒泡事件捕获区别事件冒泡事件捕获主要区别在于它们传播方向。...事件冒泡从最内层元素开始向外传播,而事件捕获从最外层元素开始向内传播。这意味着当你单击一个按钮时,事件冒泡会先触发按钮事件,然后是它父元素事件,以此类推,直到它到达文档最外层。

80121

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

说到js事件大家肯定都知道,那么今天讲一点大家不知道(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...true表示监听事件捕获阶段,false表示监听事件冒泡阶段。 返回值 没有返回值 示例: <!...然后是inner冒泡阶段 最后是outer冒泡阶段 由此我们可以看到,事件触发时候实际上都是有捕获和冒泡阶段,并且捕获阶段会从最外层父级元素开始捕获,一直捕获到最后触发事件那个元素点才会停止,...并且事件触发是先捕获,在冒泡。 阻止事件冒泡 事件冒泡会让我们实现某些功能时候产生阻碍,那么我们怎么怎么阻止事件冒泡呢,这个时候就会用到一个方法。...这样就成功阻止了事件冒泡,是不是很神奇,那么我们阻止事件冒泡还有别的方法吗,答案是肯定,这时候就得了解一下我们event对象了,我们打印一下event对象,如下: 打印发现当我们触发事件时,

2.3K20

JS里,事件几个细节问题--(冒泡、自定义事件)

今天想实现一个事件自动订阅到指定class元素之上功能。这句话很拗口,稍后解释! 在翻阅了MDN上api说明,多明白了许多细节。...1、event除了具有目标元素,事件类型,时间,位置等有效值 外,还有 bubbles  cancelable 等 与冒泡相关属性。...区别就是:preventDefault:当事件有cancelable=true时,  事件就取消了 stopPropagation :事件停止向DOM上级传播。...(即使当前元素还绑定着其它函数,函数本应该稍后执行情况, 后面的函数都会不执行,好霸气方法)  3、用CustomEvent来实现自定义事件。...再执行dispatchEvent一下语句。 这样就有机会根据上次事件结果,来决定是否终止事件链!

1.4K10

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

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

6.1K10

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);//冒泡监听 这样设置之后,事件先从外部执行到内部

87810
领券