0

私は基本的に正常に動作している YUI メニューでいくつかの作業を行っています。ボタンをキークリックしてメニューを開くと、特定のメニュー効果を作成するためにいくつかの DIV に色を付けます。ボタンをもう一度クリックすると、メニューが閉じられ、色付けが元に戻されます。すべて問題ありません。

私の問題は、エスケープ キーを押すとメニューも閉じますが、色付けを元に戻すコードを実行しないため、画面にガンクが残ってしまうことです。削除されたメニューの後にクリーンアップするコードを実行できるように、エスケープ キーの押下をトラップするにはどうすればよいですか? ありがとう!

4

1 に答える 1

0

とにかく、これが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);

言い換えると、キーダウンリスナーをウィジェットにアタッチします。ウィジェットは、キーが押されたときにescapeWatcherを実行します。この関数は、押されたキーがEscapeであるかどうかを確認し、Escapeである場合は、ウィジェットの背景色を調整します。他の提案も歓迎しますが、これは現在私のために働いています。

于 2012-03-30T00:12:42.113 に答える