vue组件
(function(){
let openDelay=false;
Vue.directive('intervalclick', function(el,binding){
el.onclick=function(e){
if(openDelay)return;
openDelay=!openDelay;
if (!binding.value) {
alert("未传入Value数据!");
return;
}
let func = binding.value['func'];
let time=binding.value['time'];
if(typeof time !=='number'){
alert("传入等待时间错误");
return;
}
let args=[];
for (const key in binding.value) {
if (binding.value.hasOwnProperty(key)) {
if(key==='func'||key==='time')continue;
args.push(binding.value[key])
}
}
setTimeout(() => {
openDelay=!openDelay;
}, time);
func(...args);
}
})
})()
使用
<button v-intervalclick='{func:执行方法,time:间隔时间(毫秒数),...执行方法所需要的参数}'>点击</button>