Как поймать клавишу выхода, которая закрывает меню YUI? - PullRequest
0 голосов
/ 29 марта 2012

Я делаю кое-что с меню YUI, которое в основном работает нормально. Когда я поднимаю меню с помощью нажатия клавиши на кнопке, я делаю некоторые раскраски некоторых DIV, чтобы создать определенный эффект меню. Нажатие на кнопку снова закрывает меню и отменяет окраску, и все хорошо.

Моя проблема в том, что нажатие клавиши escape также закрывает меню, но без запуска кода отмены раскраски, и в результате я остаюсь на экране. Как я могу перехватить нажатие клавиши escape, чтобы можно было запустить какой-то код для очистки после теперь удаленного меню? Спасибо!

1 Ответ

0 голосов
/ 30 марта 2012

В любом случае, вот один из способов:

Если вы делаете это, у вас будет где-то код, который создает 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, и, если это так, корректирует цвет фона виджета. Другие предложения приветствуются, но в настоящее время это работает для меня.

...