если у меня есть div, который я показал благодаря событию клика - что было легко сделать, чтобы закрыть его, если кто-то щелкнет где-нибудь вне div или попадет в клавишу esc?
Скрытие div с ключом esc и нажатием кнопки? В JQuery
Ответ 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>