contains 之 点击元素外位置隐藏元素

contains 之 点击元素外位置隐藏元素

api:

contains   检测一个元素包含在另一个元素之内  详解:http://www.runoob.com/jquery/misc-contains.html

原理:

监听click事件,当点击时判断点击位置是否包含在目标元素内,若判断通过则隐藏

代码:

// 创建click监听
  mounted () {
    document.addEventListener(‘click‘, this.queryHide)
  },
// 清除click监听
  beforeDestroy () {
    document.removeEventListener(‘click‘,this.queryHide)
  },
  methods: {
    queryHide (e) {
      if ((!this.$refs.queryBox.contains(e.target)) && (!this.$refs.queryDown.contains(e.target))) {
    /* 关闭元素 */
        this.show = false
      }
    }
  }

注意:

1.监听需要清除,否则控制台会报错,虽然不影响使用

2.一般判断需要判断需要关闭的元素和开启这个元素的按钮

3.ref替代了jquery和js的dom选择,当不适用vue的时候可以直接使用dom选择器完成以上操作

钻研不已,转载请注明出处。。。。。



原文地址:https://www.cnblogs.com/s313139232/p/10676223.html

时间: 2024-08-27 14:17:34

contains 之 点击元素外位置隐藏元素的相关文章

交换数组中两个元素的位置,元素包括key和value 一维数组

/*author: [email protected]description: 交换数组中两个元素的位置,元素包括key和value,具体用法见下面的例子*/$arr = array(11=>'a',22=>'b',33=>'c',44=>'d');$res = array_exchange($arr, 11 ,33); //example:echo '<pre>';print_r ($res);echo '</pre>'; function array_e

点击页面任何位置隐藏div

<include file="Public:header" /> <style type="text/css"> table{width:100%;margin: 0;} </style> <script type='text/javascript' src="/{:APP_PATH}/Public/js/unslider.min.js"></script> <script typ

jq实现 元素显示后 点击页面的任何位置除元素本身外 隐藏元素

$(".share-weixin").on("click",function(e){ var $wx=$(".weixin-share"),_winW=$(window).width(),_winH=$(window).height(),_winScrollT=$(window).scrollTop(),_winScrollL=$(window).scrollLeft(); $wx.css({"display":"b

js单击显示元素,点击元素本身以外隐藏元素

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery点击页面其他位置隐藏div

$("#btnAdd").on('click', function (e) { $("#setUp").toggle(); $(document).one('click', function () { $('#setUp').hide(); }) e.stopPropagation();/*stopPropagation();方法可以阻止把事件分派到其他节点*/ }); 原文地址:https://www.cnblogs.com/otsf/p/10796874.htm

点击除元素以外的任意地方隐藏元素js

比如想实现点击列表弹出筛选器,点击其他任意地方关闭筛选器,如图 该筛选器class名 $(document).click(function () {       $(".subMenu").hide(); });  $(".subMenu").on("click", function (event) {       //取消事件冒泡       var e = arguments.callee.caller.arguments[0] || eve

如何获取隐藏元素的宽高

获取隐藏元素(display:none)的物理尺寸 问题及场景 假如我们有这样一个输入框,点击能展开选择.如下图: 在这里输入框和下方的展开区域是分离的,独立的两个控件!初始状态下面的可选框是隐藏的(ng-show=false) 展开区域中可折叠组件accordion(对应图中省份,排序字段,短消息部分)的高度是随着数据自适应撑开,点击accordion折叠收缩时有一个高度变化的动画效果! 在计算accordion的高度时却无法获取数据节点元素的高度,导致accordion的高度为0,无法折叠!

CSS 隐藏元素的八种方法

前言 总括: 本文详细讲述了在网页中用CSS隐藏元素的七种方法. 原文博客地址:从隐藏元素谈起 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 念念不忘,必有回响;有一口气,点一盏灯. 正文 说起隐藏元素我想每一个前端er都能说起几种,但能说全的我想就不是很多了.博主总结了几种隐藏元素的方法,总结如下: 1 div{ 2 3 overflow:hidden 4 opacity:0: 5 visibility:hidd

Jquery针对一系列元素,排除某个元素的操作

<div style="height:60px;"> <label class="normal"> <input type="radio" id="StatusA" name="Status" value="0" />开票中 </label> <label class="normal"> <input