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 相关文章推荐
js 图片轮播(5张图片)
Dec 30 Javascript
JS 判断代码全收集
Apr 28 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
Feb 10 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
Oct 14 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 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
Admin generator, filters and I18n
2011/10/06 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
document.all与WEB标准
2020/05/13 Javascript
js DOM模型操作
2009/12/28 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
node.js中的console用法总结
2014/12/15 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python中的四种交换数值的方法解析
2019/11/18 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python3 xpath和requests应用详解
2020/03/06 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
党员民主评议个人总结
2014/10/20 职场文书
保护校园环境倡议书
2015/04/28 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书