如果我有一个div我已经通过点击事件显示了 - 如果有人点击div之外的任何地方,或者点击esc键,有什么方法可以让它关闭?
答案 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();
}
});
答案 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>