Функция вызывается дважды при нажатии клавиши ПРОБЕЛ в Firefox - PullRequest
0 голосов
/ 24 октября 2018

Я вызываю функцию по нажатию кнопки, и она работает нормально.Но когда я фокусируюсь на кнопке и нажимаю клавишу пробела на клавиатуре, функция дважды вызывается в браузере Firefox, при этом она работает правильно на Chrome.При нажатии клавиши ввода также работает нормально.Проблема только с пробелом.

function myFunction(name, eventNode) {
  console.log("here");
  // callingAnotherFunction(name);             
}
<button type="button" class="btn-transparent dropdown-toggle" onClick="myFunction('test', this)"><i class="ico ico-cm-arrow"></i>Click me</button>

Печать «здесь» дважды на консоли при нажатии пробела

1 Ответ

0 голосов
/ 24 октября 2018

Вот обходной путь, который вы можете использовать, чтобы отделить пространство от клика.Пробел как событие щелчка во многих браузерах содержит ошибки, поэтому вы можете вызвать событие onmousedown или onmouseup, а также вызвать событие onkeyup и проверить, является ли это пробелом.

function myFunction(name, eventNode) {
  console.log("here");
  // callingAnotherFunction(name);             
}

function keypress(e) {
  if (e.keyCode == "32") {
    myFunction('test', this);
  }
}
<button type="button" class="btn-transparent dropdown-toggle" onmouseup="myFunction('test', this)" onkeyup="keypress(event)"><i class="ico ico-cm-arrow"></i>Click me</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...