UNPKG

shortcut-key-js

Version:

js按键,组合键监听

35 lines (28 loc) 1.03 kB
import { formatKey2Unit } from './index.js'; // 维护当前按键监听的回调函数映射 const listenerMaps = {}; // 根据回调函数获取事件监听的相关信息 export const getItem = function(keyCombination, fn) { const _keyCombination = formatKey2Unit(keyCombination).join('+') for (let key in listenerMaps) { if (listenerMaps[key].combination === _keyCombination && listenerMaps[key].callback === fn) return [key, listenerMaps[key]]; } return []; } // 添加一条回调函数记录 export function setItem(keyCombination, callback, data) { listenerMaps[`key_${Math.random().toString(16).slice(-6)}`] = { ...data, callback, combination: formatKey2Unit(keyCombination).join('+') }; } // 移除一条回调函数记录 export function removeItem(keyCombination, callback) { const listener = getItem(keyCombination, callback); if (listener.length === 2) { delete listenerMaps[listener[0]]; } return listener; } export default { setItem, getItem, removeItem };