Срабатывание события "click" при клике на пробел в firefox
У меня есть кнопка, при клике на которую происходит какой-то функционал. Так если я кликну на пробел, то это событие тоже произойдет. preventDefault() применял - не работает. Это явление происходит только в браузере Firefox.
HTML
<button class="btn-start">Начать</button>
JS
const btn = document.querySelector('.btn-start');
btn.addEventListener('click', () => console.log('Hello, world!'));
Ответы (2 шт):
Автор решения: Ilnur Davletbaev
→ Ссылка
Проблема не воспроизводится ни в одном из браузеров в которых пробовал. Возможно проблема в установленных расширениях или в остальном коде страницы.
Автор решения: Pavel Nazarian
→ Ссылка
И в фаерфоксе и в хроме будет такой эффект, если фокус в данный момент на кнопке. Если допустим сначала мышкой нажали, потом пробел или enter. Можно так избежать:
btn.addEventListener('keydown',e=>{
e.preventDefault();
})
Также можно убирать фокус с кнопки:
btn.addEventListener('focus', function() {
this.blur();
})