2016-11-15 2 views
0

Я столкнулся с проблемой. Если вы нажмете рядом со ссылкой (закройте, но не по ссылке), событие touchend не будет запущено, только mouseup. Если вы коснетесь по ссылке, произойдет два события.события прикосновения не срабатывают

HTML:

<a id="link" href="#">link</a> 

ЯШ:

var link = document.getElementById('link'); 

link.addEventListener('mouseup', function() { 
    console.log('mouseup'); 
}); 

link.addEventListener('touchend', function() { 
    console.log('touchend'); 
}); 

jsfiddle (использование средства разработки режим устройства)

Является ли это проблемой какого-то браузера или это описано в спецификации?

ответ

0

У javascript есть метод preventDefault(), который запрещает называться событием по умолчанию над объектом, который вызвал событие.

link.addEventListener('touchend', function(e) { console.log('touchend'); e.preventDefault(); });

Если это все еще не работает, вы должны добавить событие нажмите чтобы поймать, что, чтобы предотвратить по этой ссылке.

Надеюсь, что это поможет.

Смежные вопросы