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

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

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

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

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


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

Поисковый запрос с помощью RxJS

Показательная и востребованная задача. Получение набираемого запроса из поля ввода через полсекунды после того, как пользователь закончил ввод с показом лоадера.

RxJS. Delay from array

import { of, from } from 'rxjs'; 
import { map, concatMap, delay } from 'rxjs/operators';

from([2,4,6,8]).pipe(
  concatMap(item => of(item).pipe(delay(1000)))
).subscribe(console.log);