Close JS Menu on ESC

99封情书 提交于 2019-12-25 18:25:37

问题


I am working on a simple slide-in menu system. I'd like to be able to close a menu by hitting the ESC key.

Here's my current code: http://jsfiddle.net/3w539Lct/3/

Line 126 of my Javascript, you can see:

$( document ).on( 'keydown', function ( e ) {
            if ( e.keyCode === 27 ) { // ESC
                $(".menu-wrap").prop("checked", false);
            }
        });

However, this doesn't work. Can someone help?


回答1:


I reused some of your existing functions and variables. This should be correct.

The element $(."menu-wrap") is a div, and doesn't have a checked property. You need to add the logic of hiding the menu on escape button press.

     $( document ).on( 'keydown', function ( e ) {
        if ( e.keyCode === 27 ) { // ESC
             isOpen && classie.remove( bodyEl, 'show-menu' );
        }
    });

Here's a working demo




回答2:


Trigger the toggleMenu on the condition it's isOpen. like so:

$( document ).on( 'keydown', function ( e ) {
    if ( e.keyCode === 27 ) { // ESC
        isOpen && toggleMenu();
    }
});

http://jsfiddle.net/3w539Lct/7/




回答3:


$(document).keyup(function(e) {
 if (e.keyCode == 27) {
     toggleMenu();
 }// escape key maps to keycode `27`
});

hope this helps



来源:https://stackoverflow.com/questions/29028740/close-js-menu-on-esc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!