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

js事件防止冒泡

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

2.4K40

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,这就是事件冒泡,此正方形处于叶节点上,对其操作事件会向上进行冒泡,直到根节点。 绑定点击事件,可以称为事件委托 <!...有时候我们并不希望事件冒泡而去执行上级节点绑定事件,这时候就需要阻止事件冒泡,w3c方法是e.stopPropagation(),IE则是使用 window.event.cancelBubble

6.5K20

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

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

10.2K53

js绑定事件代理

js通过事件代理方式绑定跳转事件,我这里逻辑是把click事件绑定在最外层container上面,如果e.target包含我已经写好class,则执行跳转逻辑。...但是这种方式好像只能是在点击元素上面,也就是最内层元素上面有相应class才能跳转,在外层加同样class不生效,说明是我对于事件代理理解不够深刻,其实事件代理作用就是为了把目标元素事件绑定在外层做代理...class时执行点击事件,又想要外层元素含有class时执行点击事件,修改优化如下: document.querySelector('#container').addEventListener('click...', function (e) { console.log(e.currentTarget) //获得当前绑定监听事件元素, container console.log...注意:内层元素,即点击目标元素必须是点击时真正目标元素,而不是外面一层; currentTarget绑定相应想要点击class时候必须是做代理即做事件监听元素。

4.9K20

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

说到js事件大家肯定都知道,那么今天讲一点大家不知道(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...addEventListener方法,从字面上解释可以看到这种方法叫做添加事件监听者,就是以监听形式来控制时间触发 意义 addEventListener()可以监听事件触发,来达到绑定事件目的...然后是inner冒泡阶段 最后是outer冒泡阶段 由此我们可以看到,事件触发时候实际上都是有捕获和冒泡阶段,并且捕获阶段会从最外层父级元素开始捕获,一直捕获到最后触发事件那个元素点才会停止,...并且事件触发是先捕获,在冒泡。 阻止事件冒泡 事件冒泡会让我们实现某些功能时候产生阻碍,那么我们怎么怎么阻止事件冒泡呢,这个时候就会用到一个方法。...方法来判断触发节点是不是当前我们点击节点,就可以很巧妙阻止事件冒泡了。 应用场景举例 可能很多朋友感觉,这个东西我根本用不到啊,不会出现这种情况,我怎么会把父元素和子元素绑定相同事件呢?

2.2K20

JS 事件绑定事件监听、事件委托详细介绍 转

事件绑定 要想让 JavaScript 对用户操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作函数,不同操作对应不同名称。...在JavaScript中,有三种常用绑定事件方法: 在DOM元素中直接绑定; 在JavaScript代码中绑定绑定事件监听函数。...随即IE也推出了自己一套事件驱动机制(即事件冒泡)。最后W3C规范了两种事件机制,分为捕获阶段、目标阶段、冒泡阶段。...function:(必需)指定要事件触发时执行函数。 useCapture:(可选)指定事件是否在捕获或冒泡阶段执行。true,捕获。false,冒泡。默认false。 注:IE8以下不支持。...hello1 事件委托 事件委托就是利用冒泡原理,把事件加到父元素或祖先元素上,触发执行效果。

8.7K31

【Node.JS事件绑定与触发

往期文章 【Node.JS】写入文件内容 【Node.JS】读取文件内容 目录 简介 绑定事件 on() addListener()  once() 监听事件emit()  传参  删除事件 removeListener...()  removeAllListeners() ---- 简介 node.js事件是使用events模块,通过实例化它里面的EventEmitter类,来绑定和监听事件。...('namea', function () { console.log("坚毅小解同志"); }) 查看绑定事件 const eve = require("events"); //导入模块..."); }) //查看对象属性 里面有绑定事件 console.log(event);  里面有事件具体属性,和事件数量。...{a}同志`); }) //触发事件冰川入参数 event.emit('namea', '小解');  once() once 只会绑定一次性触发事件,触发一次后就会解除绑定

11K40

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

5.9K10

js 动态生成 input 绑定事件 blur 无效

,而针对于其中input标签,要求设置失去焦点blur事件 需要实现界面截图如下: ?...最开始编写 js 代码如下: /** * 当sku库存量变化时,对应总库存进行更新 */ $(".input-sku-stock").blur(function ()...,而动态新生成却无法触发blur事件 因为测试失败后,转而考虑新写法,且可以正常实现 ?...ி 附录 1.针对我问题,求助度娘,发现了下面的一个帖子,可作参考 动态添加blur事件失效 [问题点数:60分,结帖人lawrendc] 时间相当久远... 2.最接近解决需求文章如下...,建议可自行测试 动态生成input绑定事件无效如:blur 意见:异步导致绑定事件失败,需使用全局绑定事件 3.w3school 文档 - onblur 事件 这就是官方文档

8.8K00
领券