用esc键隐藏div,然后点击?在Jquery

Ell*_*iot 13 javascript jquery

如果我有一个div我已经表现出感谢点击事件 - 如果有人点击div之外的任何地方,或者点击esc键,有什么方法可以让它关闭?

Šim*_*das 49

干得好...

$( 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();
    }
});
Run Code Online (Sandbox Code Playgroud)

现场演示: http ://jsfiddle.net/S5ftb/


Jef*_*ney 11

对于那些喜欢香草的人:

<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>
Run Code Online (Sandbox Code Playgroud)