let startClick = 0,
endClick = 0,
currentDate = () => Date.now();
//отслеживание клика и отмена действия по дефолту
gallery.addEventListener('click', blockclick.bind(event) )
function blockclick(e) {
if (event.target.nodeName === 'A') {
e.preventDefault();
}
}
//вычисление времени нажатия
gallery.addEventListener('mousedown', () => { //засекаем, когда кнопка мыши нажата
startClick = currentDate();
})
gallery.addEventListener('mouseup', (e) => { //узнаем, когда кнопку мыши отпустили
endClick = currentDate();
if (endClick - startClick < 500) {
triggerEvent(e);
}
})
//функция эмуляции нажатия на ссылку
function triggerEvent(elem) {
let clickEvent = new Event ('click');
elem.target.removeEventListener('click', blockclick ) //убираем обработчик отмены
elem.target.dispatchEvent(clickEvent); //события по дефолту
}