返回顶部
首页 > 资讯 > 精选 >elementui中的clickoutside点击空白隐藏元素怎么实现
  • 574
分享到

elementui中的clickoutside点击空白隐藏元素怎么实现

2023-07-05 09:07:37 574人浏览 薄情痞子
摘要

这篇文章主要讲解了“elementui中的clickoutside点击空白隐藏元素怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui中的clickoutside点击空白

这篇文章主要讲解了“elementui中的clickoutside点击空白隐藏元素怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui中的clickoutside点击空白隐藏元素怎么实现”吧!

基本使用

点击div,closeBox方法不会执行,点击空白才执行

<template>  <div class="app">    <div v-show="isshowBox" v-clickoutside="closeBox" class="box"></div>  </div></template><script>import Clickoutside from 'element-ui/src/utils/clickoutside'export default {  directives: {    Clickoutside  },  data() {    return {      isShowBox: true    }  },  methods: {    closeBox() {      this.isShowBox = false;    }  }};

源码实现

  • 在document元素上注册'mousedown'和'mouseup'事件,mouseup时会执行使用了该指令元素上的documentHandler方法

  • documentHandler方法里判断点击的元素是否为使用了指令的元素,不是就执行closeBox的方法

import Vue from 'vue';import { on } from 'element-ui/src/utils/dom';const nodeList = [];const ctx = '@@clickoutsideContext';let startClick;let seed = 0;on(document, 'mousedown', e => (startClick = e));on(document, 'mouseup', e => {  nodeList.forEach(node => node[ctx].documentHandler(e, startClick));});function createDocumentHandler(el, binding, vnode) {  return function(mouseup = {}, mousedown = {}) {    if (!vnode ||      !vnode.context ||      !mouseup.target ||      !mousedown.target ||      el.contains(mouseup.target) ||      el.contains(mousedown.target) ||      el === mouseup.target ||      (vnode.context.popperElm &&      (vnode.context.popperElm.contains(mouseup.target) ||      vnode.context.popperElm.contains(mousedown.target)))) return;    if (binding.expression &&      el[ctx].methodName &&      vnode.context[el[ctx].methodName]) {      vnode.context[el[ctx].methodName]();    } else {      el[ctx].bindingFn && el[ctx].bindingFn();    }  };}export default {  bind(el, binding, vnode) {    nodeList.push(el);    const id = seed++;    el[ctx] = {      id,      documentHandler: createDocumentHandler(el, binding, vnode),      methodName: binding.expression,      bindingFn: binding.value    };  },  update(el, binding, vnode) {    el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);    el[ctx].methodName = binding.expression;    el[ctx].bindingFn = binding.value;  },  unbind(el) {    let len = nodeList.length;    for (let i = 0; i < len; i++) {      if (nodeList[i][ctx].id === el[ctx].id) {        nodeList.splice(i, 1);        break;      }    }    delete el[ctx];  }};

感谢各位的阅读,以上就是“elementui中的clickoutside点击空白隐藏元素怎么实现”的内容了,经过本文的学习后,相信大家对elementui中的clickoutside点击空白隐藏元素怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: elementui中的clickoutside点击空白隐藏元素怎么实现

本文链接: https://lsjlt.com/news/350880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • elementui中的clickoutside点击空白隐藏元素怎么实现
    这篇文章主要讲解了“elementui中的clickoutside点击空白隐藏元素怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui中的clickoutside点击空白...
    99+
    2023-07-05
  • element-ui中的clickoutside点击空白隐藏元素
    目录前言基本使用源码实现最后前言 大家好,今天主要比较简单的了解下clickoutside指令的作用,主要作用是自己手动实现类似下拉的组件,想要点击空白隐藏下拉框,可以使用该指令,...
    99+
    2023-03-06
    element-ui clickoutside空白隐藏 clickoutside 点击空白隐藏
  • jquery怎么实现点击隐藏元素
    本教程操作环境:windows7系统、jquery3.6.1版本、Dell G3电脑。在jquery中,可以利用click()和hide()方法来实现点击隐藏元素。实现步骤:步骤1:利用click()函数给按钮元素绑定点击事件,并设置事件处...
    99+
    2023-05-14
    jquery javascript
  • jquery如何实现点击隐藏元素
    今天小编给大家分享一下jquery如何实现点击隐藏元素的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现步骤:1、利用cli...
    99+
    2023-07-04
  • jquery如何实现点击元素相邻元素隐藏
    本篇内容主要讲解“jquery如何实现点击元素相邻元素隐藏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何实现点击元素相邻元素隐藏”吧! ...
    99+
    2024-04-02
  • jquery如何实现点击显示元素再次点击隐藏元素
    这篇文章主要讲解了“jquery如何实现点击显示元素再次点击隐藏元素”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何实现点击显示元素再次点击隐...
    99+
    2024-04-02
  • react怎么实现点击隐藏显示
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现点击隐藏显示?react中元素的显示和隐藏方式的使用 在react中,我们有常用的有四种方式来显示元素的显示和隐藏,和vue不同,vue...
    99+
    2023-05-14
    React
  • javascript怎么实现点击按钮显示/隐藏
    本文小编为大家详细介绍“javascript怎么实现点击按钮显示/隐藏”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript怎么实现点击按钮显示/隐藏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-06
  • 微信小程序如何实现slideUp、slideDown滑动效果及点击空白隐藏功能
    这篇文章给大家分享的是有关微信小程序如何实现slideUp、slideDown滑动效果及点击空白隐藏功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。怎样实现jq中的slideU...
    99+
    2024-04-02
  • PHP中怎么删除数组中的空白元素
    这篇文章将为大家详细讲解有关PHP中怎么删除数组中的空白元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP删除数组空白元素的具体代码如下:function array_rem...
    99+
    2023-06-17
  • 怎么使用jQuery来隐藏ul中的li元素
    这篇“怎么使用jQuery来隐藏ul中的li元素”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用jQuery来隐藏ul...
    99+
    2023-07-05
  • css怎么实现点击元素变更颜色
    这篇文章主要介绍“css怎么实现点击元素变更颜色”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css怎么实现点击元素变更颜色”文章能帮助大家解决问题。两种方法:active,元素点击时变色,但点击后...
    99+
    2023-06-30
  • jquery怎么实现点击按钮显示与隐藏效果
    本文小编为大家详细介绍“jquery怎么实现点击按钮显示与隐藏效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery怎么实现点击按钮显示与隐藏效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先来看实...
    99+
    2023-06-30
  • 怎么通过display或visibility实现HTML元素的显示与隐藏
    本篇内容介绍了“怎么通过display或visibility实现HTML元素的显示与隐藏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望...
    99+
    2024-04-02
  • Android开发中实现点击隐藏软键盘的方法
    Android开发中实现点击隐藏软键盘的方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸E...
    99+
    2023-05-31
    android roi
  • php页面怎么用JavaScript实现点击按钮显示隐藏
    这篇文章主要讲解了“php页面怎么用JavaScript实现点击按钮显示隐藏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php页面怎么用JavaScript实现点击按钮显示隐藏”吧!第一步...
    99+
    2023-07-05
  • Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)
    一、需求触发场景:项目中需要开发带有EditText的Dialog显示,要求在编辑完EditText时,点击Dilog的空白处隐藏软键盘。但是Dialog不会消失。示例如下:二、实现方法:发布需求时,我个人曾想过直接通过new的方式直接创建...
    99+
    2023-05-31
    activity dialog roi
  • 怎么使用vue实现简单的点击显示与隐藏效果
    本文小编为大家详细介绍“怎么使用vue实现简单的点击显示与隐藏效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用vue实现简单的点击显示与隐藏效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目前前端框...
    99+
    2023-07-04
  • Vue怎么实现点击按钮显示或隐藏内容效果
    这篇文章主要介绍“Vue怎么实现点击按钮显示或隐藏内容效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么实现点击按钮显示或隐藏内容效果”文章能帮助大家解决问题。实例代码:<!DOCT...
    99+
    2023-07-04
  • 怎么用vue组件实现弹出框点击显示隐藏效果
    本篇内容介绍了“怎么用vue组件实现弹出框点击显示隐藏效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下1.在当前页面中(主页面)&...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作