Me gustaría ocultar un div cuando el usuario hace clic en cualquier parte de la página fuera de ese div. ¿Cómo puedo hacer eso usando raw javascript o jQuery?Evento con un clic en todas partes en la página fuera del div específico
Respuesta
Adjuntar un evento de clic al documento para ocultar el div:
$(document).click(function(e) {
$('#somediv').hide();
});
Adjuntar un evento de clic a la div para detener hace clic en él se propaguen al documento:
$('#somediv').click(function(e) {
e.stopPropagation();
});
¡Muchas gracias! Eso funcionó exactamente como yo quería. – sumek
AFAIK, con jQuery en el segundo controlador de eventos solo necesita "devolver falso"; para detener la propagación http://docs.jquery.com/Events/click (cerca de la parte inferior de la página) – scunliffe
@scunliffe - Es cierto, básicamente hacen lo mismo. Lo bueno de stopProp es que no tiene que ser la última línea, por lo que siempre puedes ponerlo en la primera línea para facilitar la lectura, por ejemplo. –
primera idea, en javascript prima (de this post):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
#mydiv{
background-color: #999999;
height: 100px;
width: 100px;
}
-->
</style>
<script type="text/javascript">
document.onclick=check;
function check(e)
{
var target = (e && e.target) || (event && event.srcElement);
var obj = document.getElementById('mydiv');
if(target!=obj){obj.style.display='none'}
}
</script>
</head>
<body>
<div id="mydiv">my div</div>
</body>
</html>
probado con IE6 y FireFox3.1, funciona como se anuncia.
Seguro parece que quieres un diálogo modal. Este plugin jQuery http://code.google.com/p/simplemodal/ parece que tiene potencial.
Si el div tiene el foco, puede adjuntarlo al evento onblur.
- 1. clic fuera DIV
- 2. Deshabilitar el clic del mouse cuando está fuera de div
- 3. evento de disparo cuando jQuery clic fuera del elemento
- 4. Detectar hacer clic dentro/fuera del elemento con controlador de evento único
- 5. Javascript - indicador de carga/ocupado o div transparente sobre la página en el evento clic
- 6. WordPress con phpMyAdmin - 404 en todas partes
- 7. ¿Detectar un clic fuera del elemento?
- 8. jQuery: desencadenar un evento de clic en un botón de opción en la página carga
- 9. ¿Cómo ir a un elemento específico en la página?
- 10. jQuery - ¿Cómo verificar si se hizo clic en algún enlace en un DIV específico?
- 11. Evitar disparar evento de foco al hacer clic en div
- 12. Activar un evento de clic con los parámetros
- 13. jQuery: Fuego clic en el evento en un lapso de
- 14. Ocultar cursor en todas partes
- 15. ¿Cómo ocultar un div con la tecla esc y hacer clic? En Jquery
- 16. jQuery haga clic en elemento evento
- 17. jQuery - Ocultar un menú div después de hacer clic fuera div
- 18. jQuery haga clic en evento para documento pero ignore un div
- 19. Capturar Haga clic con el botón derecho en HTML DIV
- 20. Cambiar página sin actualizar un div en la página
- 21. jQuery DIV clic, con anclajes
- 22. ocultando DIV al hacer clic fuera de él
- 23. jQuery: obtener un clic del ratón, si dentro de un div o no
- 24. Excluir evento de clic según la condición?
- 25. Qt :: WA_TranslucentBackground disponible en todas partes?
- 26. ¿Cómo puedo disparar un evento cuando hago clic derecho en un div dentro de un lienzo con jQuery?
- 27. jQuery Mobile - desplácese a div específico en la carga de la página
- 28. Cómo disparo un evento cuando se produce un clic fuera de un cuadro de diálogo
- 29. capture Haga clic en div que rodea un iframe
- 30. ¿Cómo imprimir toda la página web de asp.net en un solo clic, haga clic en evento usando VB?
Creo que el jQuery focusout() - Event resolverá su problema. –