Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)


Posted in Javascript onDecember 04, 2019

1. 绑定元素

Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

2. mounted生命周期

Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

3. 实现思路

  • 页面挂载完后,监听全局点击事件
  • 获取当前点击的元素,根据需求获取当前元素本身的属性
  • 判断当前点击元素与要隐藏的元素是否相同
  • 当前点击元素与要隐藏的元素不相同则隐藏

4. 最终效果

Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)

接着看下vue实现点击目标元素外页面的其他地方隐藏弹窗

方法:

步骤1:给页面最外出的元素div加点击事件:@click=“popShow = false”

步骤2:给点击目标元素加点击事件:@click=“popShow = true”

备注:popShow 为控制弹窗显示与隐藏的标志。

PS:下面看下vue实现点击其他地方隐藏div

方法一:

通过监听事件

document.addEventListener('click',function(e){
    if(e.target.className!='usermessage'){
     that.userClick=false;
    }
})

方法二(比较好):

给最外层的div加个点击事件 @click="userClick=false"

给点击的元素上面加上:@click.stop="userClick=!userClick"

方法三:

<template>
<!--向页面添加关闭div的事件监听-->
<div class="page" @click="hide">

<!--添加.stop防止page的点击事件触发,导致无法显示div-->
<button @click.stop="show">点击显示div</button>

<!--指定的div。添加.stop防止点击div内的元素时,整个div被关闭-->
<div @click.stop>
...
</div>

</div>
<template>

<script>
export default {
methods:{
show(){},
hide(){}
}

}
</script>

小结:

通过vue.js 事件的.stop修饰符可以阻止事件继续冒泡传播,也可以使用原生js事件的event.stopPropagation()方法。

通过向指定的div添加.stop,可以实现只有点击非该div内的元素时,才会往上冒泡至page,从而实现点击其他地方隐藏div。

要向触发显示div的按钮添加.stop,否则一点击按钮,触发show()之后传播到page,立马就会触发hide(),div就无法显示。

总结

以上所述是小编给大家介绍的Vue实现点击当前元素以外的地方隐藏当前元素,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
初学prototype,发个JS接受URL参数的代码
Sep 25 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
Nov 27 Javascript
javascript 数字格式化输出的实现代码
Dec 10 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
jquery实现显示已选用户
Jul 21 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
vue.js+Echarts开发图表放大缩小功能实例
Jun 09 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
May 21 Javascript
vue+canvas实现移动端手写签名
May 21 Javascript
Vue实现图片与文字混输效果
Dec 04 #Javascript
环形加载进度条封装(Vue插件版和原生js版)
Dec 04 #Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 #Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 #Javascript
vue项目中极验验证的使用代码示例
Dec 03 #Javascript
jQuery轮播图功能制作方法详解
Dec 03 #jQuery
JS实现的雪花飘落特效示例
Dec 03 #Javascript
You might like
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
javascript实现日历效果
2019/06/17 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python中使用print输出中文的方法
2018/07/16 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
护理专业毕业生自荐信范文
2014/01/05 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
个人求职自荐信范文
2014/06/20 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
上诉答辩状范文
2015/05/22 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
二年级作文之动物作文
2019/11/13 职场文书