购物车操作数量时,禁止连续点击减少数量:
新建文件夹:banreclick.js
import Vue from 'vue'
// 代码
const pointDoms = []; // 使用这个指令的所有DOM对象
Vue.directive('points', {
inserted(el, binding) {
pointDoms.push(el); // 存储使用这个指令的DOM
el.addEventListener('click', () => {
// 禁用所有使用这个指令的DOM结构点击事件
pointDoms.forEach(pointItem => {
pointItem.style.pointerEvents = 'none';
});
setTimeout(() => {
// 启动所有使用这个指令的DOM结构点击事件
pointDoms.forEach(pointItem => {
pointItem.style.pointerEvents = 'auto';
});
}, binding.value || 350);
});
}
});
main.js中引入:
import "@/utils/banreclick.js"
页面中使用:
//传参:1000毫秒内禁止连续点击
<div @click='addNum' v-points="1000"></div>
//不传参:默认350毫秒
<div @click='addNum' v-points></div>