Как стать автором
Обновить

Комментарии 12

*Из топика "36 советов для стартапов: от программирования до пиара"
Совет 7: Не изобретайте заново велосипед
Многие стартапы тонут из-за излишней инфраструктуры. Здесь имеются в виду две вещи: создание своих собственных библиотек или построение собственной масштабируемой системы мирового класса. По первому вопросу: в интернете огромное множество великолепных билиотек с исходными кодами, так что нет смысла создавать свои собственные. Используете вы JavaScript, PHP, .NET, Python или Ruby, скорее всего, уже существуют подходящие вам библиотеки. Повторное написание библиотек — это пустая трата времени, тем более что вряд ли вы напишете их лучше.

Для jQuery есть плагин для работы с горячими клавишами http://code.google.com/p/js-hotkeys/
Вы правы, настоящий велосипед.
Спасибо.
на мой взгляд автор не говорил что "пишите только с нуля", а предложил один из вариантов решения задачи.
чтобы что то использовать нужно понимать как это устроено. отличная статья. в помощь новичкам
Ну, если так смотреть на вещи, то разработчики jQuery все же изобрели и продолжают изобретать велосипед))) так же как и другие подобные проекты.
И еще: разве в коде не должно быть ни одной строчки не использующей какой-либо сторонней библиотеки?

Лично я приведенный выше способ вижу вполне удобным, т.к. вместе с описанием элемента к нему можно сразу прикрутить горячую кнопку.
k0rzhik опередил :)
к сожалению он страшно глючит, когда курсор находится в textarea или input
есть опция для отключения перехвата клавиш в input/textarea.
а зачем писать $(document).keydown(...),
если можно сразу повесить обработчик на $('input, textarea').keydown(...)?
Если сделать это при инициализации веб-приложения - то элементы, которые будут созданы (либо подгружены AJAXом) в run-time, останутся без обработчика.

Но вообще - благодаря Вашему вопросу я заметил у своего решения недостаток: созданные/подгруженные поля не будут блокировать «горячие клавиши», если об этом не позаботиться специально.
конечно дело вкуса, но я в таком случае вешаю на них обработчик отдельно.
думаю, так код немного чище получается
если вы всё-таки остановитесь на моем предложении и у подгруженных элементов не будет своих id, то могу посоветовать сразу использовать следующее:
$('input, textarea').unbind('keydown', MyHandler); // дабы избежать повторного
//вызова функции
$('input, textarea').keydown('keydown', MyHandler);
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории