首页 > 其他分享 >vue.js中实现阻止事件冒泡

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

时间:2022-11-03 18:03:39浏览次数:76  
标签:触发 vue 元素 js 阻止 事件 click 冒泡

当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。

 

.stop 是阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件
.prevent 是阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交
.self 是只有是自己触发的自己才会执行,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号
.capture 是改变js默认的事件机制,默认是冒泡,capture功能是将冒泡改为倾听模式
.once 是将事件设置为只执行一次,如 .click.prevent.once 代表只阻止事件的默认行为一次,当第二次触发的时候事件本身的行为会执行
.passive 滚动事件的默认行为 (即滚动行为) 将会立即触发,而不会等待 onScroll 完成。这个 .passive 修饰符尤其能够提升移动端的性能。

 

阻止click事件冒泡(防止触发另一个事件)的方法

使用vue阻止子级元素的click事件冒泡。简单得:可以直接用stop

<div @click="test1()">    
<span @click.stop="test2()">按钮1</span>
<span>按钮2</span>
</div>

 

这样点击div里面的按钮1,就不会触发div绑定时间test1()方法。

方法二

可以自己写个阻止冒泡事件 然后在发生冒泡的元素中调用这个事件

@click="_stopPropagation($event)"

methods:{
_stopPropagation(ev){
var _this = this;
ev.stopPropagation();
},
}

 

开源作品


GOFLY是一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能。


github地址:​​go-fly​


标签:触发,vue,元素,js,阻止,事件,click,冒泡
From: https://blog.51cto.com/u_15274085/5820640

相关文章

  • js中的闭包
    什么是闭包呢?严格来说要满足四个条件:1.有函数的嵌套2.内部函数引用外部作用域的变量参数3.返回值是函数4.创建一个对象函数,让其长期驻留1functionfa(){2......
  • 开箱即用 yyg-cli(脚手架工具):快速创建 vue3 组件库和vue3 全家桶项目
    1yyg-cli是什么yyg-cli是优雅哥开发的快速创建vue3项目的脚手架。在npm上发布了两个月,11月1日进行了大升级,发布1.1.0版本:支持创建vue3全家桶项目和vue3组件......
  • 学习Pinia(安装,引入注册Vue3,初始化仓库Store,State值获取修改,解构store,actions,getters,AP
    全局状态管理工具Pinia.js有如下特点:完整的ts的支持;足够轻量,压缩后的体积只有1kb左右;去除mutations,只有state,getters,actions;actions支持同步和异步;代码扁平化没有......
  • Taro+vue3+nutui微信小程序项目使用icon-font多色图标
    根据nutui文档nut-icon组件的图片链接方式实现多色图标渲染在使用nutui图标组件(nut-icon)时发现,根据引入的icon-fontcss文件使用多色图标,渲染效果黑白色原因:未使用s......
  • js中的匿名函数
    什么是匿名函数?顾名思义,就是没有名字的函数例如:function(){console.log(123);}在vscode中会直接提示 Identifierexpected.错误。如果尝试输出的话,在浏览器也会......
  • vue跳转页面常用的几种方法
    vue跳转页面有好几种不同方法,下面将通过实例代码给大家介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。1、router-link跳转1.不带参数<router-lin......
  • vue des 加密和解密
    先引入:npminstallcrypto-jsutils包底下创建一个des.js文件,复制进去就行//utils/des.js//des加密文件importcryptoJsfrom"crypto-js";//随机生成指定......
  • 学习vue3(六)(深入v-model,自定义指令directive,组合式函数(自定义Hooks))
    深入v-modelTIps在Vue3v-model是破坏性更新的v-model在组件里面也是很重要的v-model其实是一个语法糖通过props和emit组合而成的1.默认值的改变prop:value->m......
  • vue中引入高德地图Loca数据可视化
     目录引言:关键词:正文:一、如何安装或者引入:二、如何引入:三、如何使用:四、完整代码:五、效果图 参考:引言:vue中引入高德地图​实例的,详情可以去参考,由于需求增加,地图要做的更......
  • Python json模块
    一、JSON介绍JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写。二、常用方法方法描述json.loads()将JSON字符串转化为Python......