vue自界说弹窗点击除了自己区域外关闭弹窗

种地  金牌会员 | 2024-12-10 23:02:53 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 878|帖子 878|积分 2634


这里使用到vue的自界说指令
  1.          <div class="item" v-clickoutside="clickoutside1">
  2.             <div @click="opencity" class="text"
  3.               :style="{ color: popup.iscitypop || okcitylist.length != 0 ? '#FF9500' : '#000000' }">选择地区
  4.             </div>
  5.             <i v-if="popup.iscitypop || okcitylist.length != 0" class=" el-icon-arrow-up"
  6.               :style="{ color: popup.iscitypop || okcitylist.length != 0 ? '#FF9500' : '#000000' }"></i>
  7.             <i v-else class="el-icon-arrow-down"
  8.               :style="{ color: popup.iscitypop || okcitylist.length != 0 ? '#FF9500' : '#000000' }"></i>
  9.             //绝对定位样式 popup.iscitypop true展示 false隐藏
  10.             <div class="poppad" v-if="popup.iscitypop">
  11.               <div class="tit" v-for="(item, index) in citylist" :key="index">
  12.                 {{ item.n }}
  13.                 <div class="cit">
  14.                   <div class="items" :class="its.isactive ? 'active' : ''" v-for="(its, ind) in item.s" :key="ind"
  15.                     @click.stop="changeCity(its, ind)">
  16.                     {{ its.n }}
  17.                   </div>
  18.                 </div>
  19.               </div>
  20.             </div>
  21.           </div>
  22. export default {
  23.   directives: {
  24.     clickoutside: {
  25.       bind: function (el, binding, vnode) {
  26.         function documentHandler(e) {
  27.           if (el.contains(e.target)) {
  28.             return false;
  29.           }
  30.           if (binding.expression) {
  31.             binding.value(e);
  32.           }
  33.         }
  34.         el.__vueClickOutside__ = documentHandler;
  35.         document.addEventListener("click", documentHandler);
  36.       },
  37.       unbind: function (el, binding) {
  38.         document.removeEventListener("click", el.__vueClickOutside__);
  39.         delete el.__vueClickOutside__;
  40.       }
  41.     }
  42.   },
  43. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表