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 相关文章推荐
javascript 清空form表单中某种元素的值
Dec 26 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
May 19 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
js读取配置文件自写
Feb 11 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
js动态切换图片的方法
Jan 20 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
Nov 12 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
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
js 判断脚本加载完毕的代码
2011/07/13 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
Python3基础之基本运算符概述
2014/08/13 Python
python对url格式解析的方法
2015/05/13 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
工作人员思想汇报
2014/01/09 职场文书
小学一年级评语大全
2014/04/22 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
2015年妇女工作总结
2015/05/14 职场文书
幼儿园六一主持词
2015/06/30 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python