Как поймать клавишу выхода, которая закрывает меню YUI?
Я делаю кое-что с меню YUI, которое в основном работает нормально. Когда я поднимаю меню с помощью нажатия клавиши на кнопке, я делаю некоторые раскраски некоторых DIV, чтобы создать определенный эффект меню. Нажатие на кнопку снова закрывает меню и отменяет окраску, и все хорошо.
Моя проблема в том, что нажатие клавиши escape также закрывает меню, но без запуска кода отмены окраски, и поэтому я получаю остатки грязи на экране. Как я могу перехватить нажатие клавиши escape, чтобы можно было запустить какой-то код для очистки после теперь удаленного меню? Спасибо!
1 ответ
В любом случае, вот один из способов:
Если вы делаете это, у вас будет где-нибудь код, который собирает YAHOO.widget.Menu, отображает его и, возможно, присоединяет некоторых слушателей к виджету, который при нажатии представляет меню. В этом коде я добавил следующее:
var escapeWatcher = function(e) {
var the_key = e.keyCode;
if (the_key == 27) {
$('#widgetholder').css({ 'backgroundColor' : 'transparent' }); }
};
YAHOO.util.Event.addListener('widgetholder', 'keydown', escapeWatcher);
Другими словами: присоедините слушатель keydown к виджету, который запускает escapeWatcher при нажатии клавиши. Эта функция проверяет, была ли нажата клавиша Escape, и, если это так, корректирует цвет фона виджета. Другие предложения приветствуются, но в настоящее время это работает для меня.