vue监听全局的点击时间_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...

Vue 事件处理方法

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

v-on:click 单击事件

+ +

- -

v-on:dblclick 双击事件

+ +

- -

v-on:mousemove\mouseout 鼠标事件

{{ x }} - {{ y }}

new Vue({

el:".vue-app",

data:{

age: 25,

x:0,

y:0

},

methods:{

add:function(inc){

this.age += inc;

},

subtract:function(dec){

this.age -= dec ;

},

update:function(event){

// console.log(event);

this.x = event.offsetX;

this.y = event.offsetY;

}

}

});

然而许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。

Vue.js 事件修饰符

在事件处理程序中尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

.stop

.prevent

.capture

.self

.once

.passive

Stop

+ +

blog.023xs.cn

注意事项:使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

Vue 按键修饰符

在监听键盘事件时,我们经常需要检查常见的键值。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

全部的按键别名:

.enter

.tab

.delete (捕获“删除”和“退格”键)

.esc

.space

.up

.down

.left

.right

记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名,当然也可以通过全局 config.keyCodes 对象自定义按键修饰符别名。

补充知识:vue给同一元素绑定单击click和双击事件dblclick,执行不同逻辑

在做项目过程中,需求是点击孔位单击弹出对话框查看产品总数,双击弹出对话框查看详情。一开始直接click和dblclick写在标签里面,但是不管怎么样,总是执行单击事件

解决办法:利用计时器,在大概时间模拟双击事件

html部分代码:

v-for="(item,index) in items" :key="index"

@click="storageCount(item.id)"

@dblclick.native="storageDetail(item.id)"

class="inline-cell"

:class="colors[item.status]">

{{item.id}}

.native主要用于监听组件根元素的原生事件,主要是给自定义的组件添加原生事件。

官方对.native修饰符的解释为:有时候,你可能想在某个组件的根元素上监听一个原生事件。可以使用 v-on 的修饰符 .native

js部分代码

import desDialog from './dialog';

import detailDialog from './detailDialog';

var time = null; // 在这里定义time 为null

export default {

name: 'storeTable',

components: {

desDialog,

detailDialog

},

props: ['providerid'],

data() {

return {

colors: ['space', 'isBuy'],

showDialog: false,

showDialogT: false

};

},

methods: {

// 单击事件函数

storageCount(id) {

clearTimeout(time); //首先清除计时器

time = setTimeout(() => {

this.showDialog = !this.showDialog;

const obj = {};

obj.cutname = id;

obj.providerid = this.providerid;

this.$store.dispatch('GetStorageCount', obj);

}, 300); //大概时间300ms

},

// 双击事件函数,清除计时器,直接处理逻辑

storageDetail(id) {

clearTimeout(time); //清除

this.showDialogT = !this.showDialogT;

const obj = {};

obj.cutname = id;

obj.providerid = this.providerid;

this.$store.dispatch('GetStorageDetail', obj);

},

close() {

this.showDialog = false;

},

closeT() {

this.showDialogT = false;

}

}

};

以上这篇vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易采站长站。

你可能感兴趣的:(vue监听全局的点击时间)