Enter на кнопке вызывает событие click

Для меня стал небольшим открытием следующий факт:

Нажатие клавиш Enter и Space на элементах <button> и <a> помимо событий клавиатуры (keydown) вызывает событие клика мыши click

Соответственно, в то время как обработчик «onclick» звучит так, как будто оно связан только с мышью, в действительности к нему добавлются действие по умолчанию для ссылки и кнопки.

В интересную ситуацию можно попасть, если повешеать обработчик какого-нибудь переключателя toggle на keydown и click. Нажатие enter в таком случае визуально не будет работать т.к. toggle будет вызываться 2 раза.


Похожие записи

Axios или fetch

Сравнение на примере GET/POST запросов, обработке ошибок и возможности задавать базовую конфигурацию.

HTML атрибуты и DOM свойства

  • Значение HTML атрибута указывает начальное значение;
  • Значение DOM свойства является текущим значением;
  • Атрибуты инициализируют DOM свойства.

Builder в JS

Builder (cтроитель) - порождающий шаблон программирования. Применяется для создания сложных объектов при помощи цепочки методов someBuilder->setValueA(1)->setValueB(2)->build()