Подтвердить что ты не робот

Скрытие div с ключом esc и нажатием кнопки? В JQuery

если у меня есть div, который я показал благодаря событию клика - что было легко сделать, чтобы закрыть его, если кто-то щелкнет где-нибудь вне div или попадет в клавишу esc?

4b9b3361

Ответ 1

Здесь вы идете...

$( document ).on( 'click', function ( e ) {
    if ( $( e.target ).closest( elem ).length === 0 ) {
        $( elem ).hide();
    }
});

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

Live demo: http://jsfiddle.net/S5ftb/

Ответ 2

Для тех, кто предпочитает ваниль:

<div id="div">Click me dude</div>

<script>
    d = document.getElementById("div");
    d.addEventListener("click",     function(e){e.stopPropagation()},true);
    addEventListener("click",       function() {d.style.display="none"},false);
    addEventListener("keypress",    function(e){e.keyCode==27 &&(d.style.display="none")},false);
</script>