因开发需求使用了el-popvoer,需要在其中自定义布局且点击布局中的按钮后关闭弹窗;

问题说明
因开发需求使用了el-popvoer,需要在其中自定义布局且点击布局中的按钮后关闭弹窗;

所以使用:visible属性来控制是否显示,但又发现点击弹窗之外的地方不能再关闭弹窗

在网上搜索答案,发现可以使用element-plus中的ClikcOutside,便按官网中的步骤导入使用

但运行时会出错,显示 “vClickOutside is not define”; 网上搜索也没有看见类似的问题,只能自己试着解决了

解决方法
经过漫长的试错,终于解决啦!!!!

官网里面的import导入不对,导入时需要改成下面的代码:

分为全局和局部(组件中)两种方式

全局注册

//在main.js中注册

import ClickOutside from 'element-plus/es/directives/click-outside/index'
 
const app = createApp(App)
app.directive('click-outside', ClickOutside)

//局部注册
//在使用的组件中导入

import vClickOutside from 'element-plus/es/directives/click-outside/index'

//局部注册需要将ClickOutside改名为vClickOutside

使用
根据Vue使用自定义指令使用方式,在需要的元素上使用

 <div class="edit_box" v-click-outside="hidePop">
       
 </div>

1、点击使用ClickOutside的元素以外的地方就会触发hidePop方法;

2、在hidePop方法中将弹窗的状态变量赋值为false,来关闭弹窗

附:
在这里插入图片描述

自己做个记录,也分享下解决办法,希望能帮到相同问题的同学

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值