zoukankan      html  css  js  c++  java
  • vue 点击空白区域隐藏div

    在vue的mounted中写,在vue中,jq的this并没有指向当前的data,需const _this = this 改变this指向

       const _this = this 
        $(document).click(function(e) {
          console.log('e', e)
          if (_this.debug === 0) { // 如果当前是显示的,则将标志位设置为1
            console.log('0')
            _this.debug = 1
            return
          }
          if (_this.debug === 1) { // 当目前为隐藏时或者已经在展示状态时判断
            // console.log('1')
            // console.log('1', (e.target).parents('.content'))
            // console.log('133', e.target)
            if ($(e.target).parents('.content').length === 0) { // 如果未点击对应位置则隐藏
              // _this.is_select_show = false
            }
          }
        })

    2,在“点击”按钮出现的div的事件中

        openAddress() {
          this.is_select_show = !this.is_select_show
          if (this.is_select_show) {
            this.debug = 0 // 保存当前为展示的状态
          } else {
            this.debug = 1
          }
        },

     二:第二种方法

    我是表单里面有个按钮带点击显示,影藏,‘

    点击openAddress显示panelShow节点的内容,id很重要“el-form-item id="myPanel"”
        <el-form-item id="myPanel" label="地址信息:" prop="area_id">
                      <el-button
                        class="address"
                        style="color:#c0c4cc; white-space:normal; max-600px;350px;min-height:40px;"
                        @click="openAddress()" >
                        <div style="text-align:left;">
                          <span style="color:black">{{ areas_name }}</span>
                          <span v-if="!areas_name" style="color:#dcdfe6">请选择省/市/区/街道</span>
                          <i class="el-icon-arrow-down adress_i" />
                        </div>
                      </el-button>
                      <div v-if="panelShow" style="360px">
                        <addressSelect
                          :isempty="isempty"
                          :address-select-show="is_select_show"
                          :left-value="-75"
                          :top-value="41"
                          @getAddressDetail="getAddressDetail"/>
                      </div>
                    </el-form-item>

    2,在外需要点击影藏的地方添加点击事件

     <div ref="allBrand" class="mains" @click="hidePanel" ></div>
        hidePanel(event) {
          var myPanel = document.getElementById('myPanel')// 得到点击出现的节点
          if (myPanel) {
            this.panelShow = true// 有改节点的时候,显示,解决第二次点击openAddress按钮出现的bug
            if (!(myPanel.contains(event.target))) { // 这句是说如果我们点击到了id为myPanel以外的区域,为false
              this.panelShow = false// 消失
            }
          }
        },
  • 相关阅读:
    FFmpeg RTSP流通过UDP传输问题
    Hibernate
    定时刷新和跳转和停止
    md5
    xxx.class类型类
    android开发-java
    爬虫scrapy
    lettuce之springboot整合redis
    Netty
    java线程池
  • 原文地址:https://www.cnblogs.com/wangliko/p/10917479.html
Copyright © 2011-2022 走看看