// 自定义指令定义 {/* demo
Click me
*/ } export default { mounted(el, binding, vnode) { // 记录上一次点击的时间 let lastClickTime = 0; // 监听元素的点击事件 el.addEventListener('click', function (event) { console.log(lastClickTime) if(lastClickTime == 0){ binding.value(event); lastClickTime = Date.now(); }else{ // 获取当前时间戳 let currentTime = Date.now(); // 定义禁止连续点击的时间间隔(以毫秒为单位) const doubleClickInterval = 500; // 检查是否在禁止的时间间隔内进行了连续点击 if (currentTime - lastClickTime > doubleClickInterval) { // 阻止默认行为 event.preventDefault(); binding.value(event); // 更新上一次点击的时间戳 lastClickTime = currentTime; } } }); // let clickTimer; // console.log(el, binding, vnode) // console.log('v-no-double-click mounted') // el.addEventListener('click', function (event) { // if (clickTimer) { // // 如果上一次点击的计时器还存在,则取消计时器并阻止连续点击 // clearTimeout(clickTimer); // } // // 创建一个延迟执行的函数,以防止连续点击 // clickTimer = setTimeout(() => { // binding.value(event) // }, 200); // 设置延迟时间(毫秒) // }); }, // 在元素被插入到 DOM 中时被调用 inserted: function (el, binding, vnode) { } }