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

时间:2012-02-17 18:34:06

标签: javascript jquery

如果我有一个div我已经通过点击事件显示了 - 如果有人点击div之外的任何地方,或者点击esc键,有什么方法可以让它关闭?

2 个答案:

答案 0 :(得分:48)

你去......

$( 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();
    }
});

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

答案 1 :(得分:10)

对于那些喜欢香草的人:

<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>