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 相关文章推荐
传递参数的标准方法(jQuery.ajax)
Nov 19 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
Feb 12 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
js使用post 方式打开新窗口
2015/02/26 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python3.3实现乘法表示例
2014/02/07 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python sys.argv[]用法实例详解
2018/05/25 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python中new方法的详解
2019/01/15 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
长辈证婚人证婚词
2014/01/09 职场文书
公司前台辞职报告
2014/01/19 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
免职证明样本
2014/10/23 职场文书
python实现三次密码验证的示例
2021/04/29 Python