vue clickout事件,轻松解决“点击空白处消失”这

@xunlei/vue-clickout

Vue clickout,轻松解决“点击空白处消失”这种问题

在线Demo

https://xunleif2e.github.io/vue-clickout/demo/dist/index.html

Installation

npm i @xunlei/vue-clickout -S 注册指令

clickout事件是通过指令的方式实现的,因此使用前需注册指令,可以全局注册也可以局部注册。

全局注册

import Vue from 'vue' import VueClickout from '@xunlei/vue-clickout' Vue.use(VueClickout) 局部注册

<template> <div class="face" v-clickout @clickout="open=false"> <a href="javascript:;" @click="open=!open">表情</a> <div class="emoji"> <li title="开心"><span class="ico-emoji emoji-kaixin"></span></li> <li title="可爱"><span class="ico-emoji emoji-keai"></span></li> </div> </div> </template> <script> import { clickout } from '@xunlei/vue-clickout' export default { data () { return { open: false } }, // 注册指令 directives: { clickout } } </script> 用法

<template> <div class="item-comment"> <div class="comment-user"> <span class="user-name">疯狂的迷弟: </span> <p class="text-comment">王祖贤越看越美</p> <a href="javascript:;" class="reply-btn" @click="showReply=!showReply" ref="replyBtnRef">回复</a> </div> <div class="reply" v-clickout="['replyBtnRef']" @clickout="showReply=false"> <div class="reply-area" v-show="showReply"> <input type="text" class="ipt-reply"> <div class="reply-option"> <button>发送</button> </div> </div> </div> </div> </template> <script> export default { data () { return { showReply: false } } } </script> 参数

参数 说明 类型
exceptRefs 要排除的Ref,默认为指令所在的DOM Array
开发命令

# install deps npm install # serve demo at localhost:8080 npm run dev # build library and demo npm run build # build library npm run build:library # build demo npm run build:demo # pre publish npm run prepublish License

MIT

Copyright (c) 2018 greenfavo

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。