UNPKG

@tuniao/tnui-vue3-uniapp

Version:
37 lines (32 loc) 788 B
import type { Ref } from 'vue' export const useLongPress = <T extends any[]>( event: (...args: T) => void, enabled: Ref<boolean>, longPressIntervel = 250 ) => { // 长按判断定时器 let longPressTimer: ReturnType<typeof setTimeout> | null = null // 清除长按判断定时器 const clearLongPressTimer = () => { if (longPressTimer) { clearInterval(longPressTimer) longPressTimer = null } } // 处理长按事件 const handleLongPressEvent = (...args: T) => { if (enabled.value) { event(...args) clearLongPressTimer() longPressTimer = setInterval(() => { event(...args) }, longPressIntervel) } else { event(...args) } } return { handleLongPressEvent, clearLongPressTimer, } }