Как я могу получить события keydown для div в chrome? - PullRequest
9 голосов
/ 07 ноября 2011

Я бы хотел получать события нажатия клавиш в div.Я использую JQuery KeyDown.Довольно просто.

Тем не менее, он не работает на Chrome.Чтобы это работало с Chrome, я должен установить tabindex = 0.

Если я это сделаю, Chrome поместит уродливую оранжевую рамку вокруг моего div.на хром без уродливой оранжевой каймы?

1 Ответ

16 голосов
/ 07 ноября 2011

Событие Keydown отправляется только на элемент HTML, который имеет фокус.Фокусируемые элементы различаются в разных браузерах, но элементы, для которых установлено свойство tabindex, всегда могут получить фокус в большинстве браузеров.

Вы уже установили tabindex для элемента div, чтобы он был фокусируемым и мог получать события клавиатуры.Ваша проблема - это контур по умолчанию для выделенного в данный момент элемента в Google Chrome.

Чтобы изменить контур (как вы упомянули «уродливую оранжевую рамку»), используйте псевдо-класс CSS: focus и свойство CSS outline.Следующий пример удалит контур из всех элементов, когда они имеют фокус:

*:focus
{
    outline: none;
}

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

...