如何使用vue中实现点击空白处隐藏div实现

这次给大家带来如何使用vue中实现点击空白处隐藏div实现,使用vue中实现点击空白处隐藏div实现的注意事项有哪些,下面就是实战案例,一起来看一下。

简单想应该怎么实现?

1、肯定是给document增加一个click事件监听
2、当发生click事件的时候判断是否点击的当前对象
结合着本思路和指令咱们来实现。

简单介绍vue指令

一个指令定义对象可以提供如下几个钩子函数 (均为可选):

bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

unbind:只调用一次,指令与元素解绑时调用。

接下来我们来看一下钩子函数的参数 (即 el、binding、vnode 和 oldVnode)。

如何使用vue中实现点击空白处隐藏div实现

代码实现

创建指令对象,分析放在代码中

 

显示

const clickoutside = { // 初始化指令 bind(el, binding, vnode) { function documentHandler(e) { // 这里判断点击的元素是否是本身,是本身,则返回 if (el.contains(e.target)) { return false; } // 判断指令中是否绑定了函数 if (binding.expression) { // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法 binding.value(e); } } // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听 el.vueClickOutside = documentHandler; document.addEventListener('click', documentHandler); }, update() {}, unbind(el, binding) { // 解除事件监听 document.removeEventListener('click', el.vueClickOutside); delete el.vueClickOutside; },};export default { name: 'HelloWorld', data() { return { show: true, }; }, directives: {clickoutside}, methods: { handleClose(e) { this.show = false; }, },};.show { width: 100px; height: 100px; background-color: red;}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用Vue实现倒计时按钮

怎样利用Vue写一个双向数据绑定

以上就是如何使用vue中实现点击空白处隐藏div实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2750436.html

(0)
上一篇 2025年3月8日 05:36:02
下一篇 2025年2月23日 14:17:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在vue组件中如何实现全局注册和局部注册

    下面我就为大家分享一篇vue 组件 全局注册和局部注册的实现,具有很好的参考价值,希望对大家有所帮助。 全局注册,注册的组件需要在初始化根实例之前注册了组件; 局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可…

    编程技术 2025年3月8日
    200
  • 在vue组件传递对象中实现单向绑定,该怎么做?

    下面我就为大家分享一篇vue组件传递对象中实现单向绑定的示例,具有很好的参考价值,希望对大家有所帮助。 当使用vue组件时,组件之间经常需要传递数据,这里不讨论传递一个字符串变量或者数字变量的情况,那些去看官方文档就够了,此处提出我在组件间…

    编程技术 2025年3月8日
    200
  • 在Vue中如何操作自定义指令实现checkbox全选功能

    下面我就为大家分享一篇vue自定义指令实现checkbox全选功能的方法,具有很好的参考价值,希望对大家有所帮助。 最近做的一个项目需要用到Vue实现全选功能,参考了一下网上的做法,发现用属性计算的复用性不高,于是选用自定义指令,但网上的做…

    编程技术 2025年3月8日
    200
  • 使用JS怎样实现最简单的跨域

    这次给大家带来使用JS怎样实现最简单的跨域,使用JS实现最简单的跨域注意事项有哪些,下面就是实战案例,一起来看一下。 有一天有人跑来跟我定方案,问我cors是什么原理,一脸懵逼,跨域我只知道jsonP啊,眼看一个装逼的机会就要失去了。“我现…

    编程技术 2025年3月8日
    200
  • 如何使用element-ui表格实现单元格可编辑

    下面我就为大家分享一篇element-ui 表格实现单元格可编辑的示例,具有很好的参考价值,希望对大家有所帮助。 如下所示:       {{ scope.row.name }}              export default{ d…

    编程技术 2025年3月8日
    200
  • vue中dialog弹框如何实现

    下面我就为大家分享一篇vue中简单弹框dialog的实现方法,具有很好的参考价值,希望对大家有所帮助。 效果如下,dialog中内容自行添加            x   empty       登录后复制 接收父组件传参isShow,并返…

    2025年3月8日
    200
  • 怎样做出点击标题文字切换字体效果

    这次给大家带来怎样做出点击标题文字切换字体效果,点击标题文字切换字体效果的注意事项有哪些,下面就是实战案例,一起来看一下。 这个主要通过判断被点击的元素的子元素中是否包含了b元素来进行字体的切换,其中wrapInner函数是为了在$auth…

    编程技术 2025年3月8日
    200
  • 在微信小程序中如何实现修改view标签背景颜色

    这篇文章主要介绍了微信小程序实现点击按钮修改view标签背景颜色功能,涉及微信小程序事件响应及数值运算实现动态设置view背景色样式的相关操作技巧,需要的朋友可以参考下 本文实例讲述了微信小程序实现点击按钮修改view标签背景颜色功能。分享…

    编程技术 2025年3月8日
    200
  • CodeSmith生成实体类是如何实现的

    本篇文章给大家带来的内容是关于codesmith生成实体类是如何实现的,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 /**本代码由代码生成器自动生成,请不要更改此文件的任何代码。*生成时间:*生成者:*/using Sy…

    编程技术 2025年3月8日
    200
  • react怎么避免重复点击

    防止重复点击的思路: 在请求数据一旦开始,直到本次请求结束之前,不能进行下一次点击,否则给与相应的提示。 具体方法: state中的初始设置: state={   bool:true,} 登录后复制 点击事件设置: btn_click = …

    2025年3月7日
    200

发表回复

登录后才能评论