vue-clickaway

WebJar for vue-clickaway

License

License

MIT
Categories

Categories

CLI User Interface
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

vue-clickaway
Last Version

Last Version

2.2.2
Release Date

Release Date

Type

Type

jar
Description

Description

vue-clickaway
WebJar for vue-clickaway
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/simplesmiler/vue-clickaway

Download vue-clickaway

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/vue-clickaway/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>vue-clickaway</artifactId>
    <version>2.2.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/vue-clickaway/
implementation 'org.webjars.npm:vue-clickaway:2.2.2'
// https://jarcasting.com/artifacts/org.webjars.npm/vue-clickaway/
implementation ("org.webjars.npm:vue-clickaway:2.2.2")
'org.webjars.npm:vue-clickaway:jar:2.2.2'
<dependency org="org.webjars.npm" name="vue-clickaway" rev="2.2.2">
  <artifact name="vue-clickaway" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='vue-clickaway', version='2.2.2')
)
libraryDependencies += "org.webjars.npm" % "vue-clickaway" % "2.2.2"
[org.webjars.npm/vue-clickaway "2.2.2"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : loose-envify jar [1.2.0,2)

Project Modules

There are no modules declared in this project.

vue-clickaway

Reusable clickaway directive for reusable Vue.js components

npm version CDNJS

Overview

Sometimes you need to detect clicks outside of the element (to close a modal window or hide a dropdown select). There is no native event for that, and Vue.js does not cover you either. This is why vue-clickaway exists. Please check out the demo before reading further.

Requirements

  • vue: ^2.0.0

If you need a version for Vue 1, try [email protected].

Install

From npm:

$ npm install vue-clickaway --save

From CDN, chose the one you prefer:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-clickaway.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-clickaway/2.2.2/vue-clickaway.min.js"></script>
<script src="https://cdn.rawgit.com/simplesmiler/vue-clickaway/2.2.2/dist/vue-clickaway.min.js"></script>

Usage

  1. Make the directive available to your component
  2. Define a method to be called
  3. Use the directive in the template

The recommended way is to use the mixin:

import { mixin as clickaway } from 'vue-clickaway';

export default {
  mixins: [ clickaway ],
  template: '<p v-on-clickaway="away">Click away</p>',
  methods: {
    away: function() {
      console.log('clicked away');
    },
  },
};

If mixin does not suit your needs, you can use the directive directly:

import { directive as onClickaway } from 'vue-clickaway';

export default {
  directives: {
    onClickaway: onClickaway,
  },
  template: '<p v-on-clickaway="away">Click away</p>',
  methods: {
    away: function() {
      console.log('clicked away');
    },
  },
};

Caveats

  1. Pay attention to the letter case. onClickaway turns into v-on-clickaway, while onClickAway turns into v-on-click-away.
  2. Prior to vue@^2.0, directive were able to accept statements. This is no longer the case. If you need to pass arguments, just do v-on-clickaway="() => away(arg1)".
  3. There is a common issue with dropdowns (and modals) inside an element with v-on-clickaway. Some UI libraries chose to implement these UI elements by attaching the DOM element directly to the body. This makes clicks on a dropped element trigger away handler. To combat that, you have to add an extra check in the handler, for where the event originated from. See #9 for an example.

License

MIT

Versions

Version
2.2.2
2.1.0