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 jQuery $.post $.ajax用法
Jul 09 Javascript
js原型继承的两种方法对比介绍
Mar 30 Javascript
jquery复选框checkbox实现删除前判断
Apr 20 Javascript
jQuery 回调函数(callback)的使用和基础
Feb 26 Javascript
jQuery Mobile动态刷新页面样式的实现方法
May 28 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 Javascript
浅谈node.js中间件有哪些类型
Apr 29 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
基于python的字节编译详解
2017/09/20 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
Python网页解析器使用实例详解
2020/05/30 Python
Python configparser模块操作代码实例
2020/06/08 Python
python 如何上传包到pypi
2020/12/24 Python
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
创建学习型党组织实施方案
2014/03/29 职场文书
保护环境建议书100字
2014/05/13 职场文书
洗手间标语
2014/06/23 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
党员民主评议自我评价
2014/10/20 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS