Foros del Web » Programando para Internet » Javascript »

Mostrar div onclick

Estas en el tema de Mostrar div onclick en el foro de Javascript en Foros del Web. Hola a todos, Lo que intento hacer es mostrar un div cuando se le de click a un enlace. Estoy probando con el siguiente código: ...
  #1 (permalink)  
Antiguo 06/03/2013, 04:00
Avatar de pitufoweb  
Fecha de Ingreso: enero-2008
Ubicación: Un Mundo Raro
Mensajes: 1.148
Antigüedad: 17 años
Puntos: 181
Mostrar div onclick

Hola a todos,

Lo que intento hacer es mostrar un div cuando se le de click a un enlace. Estoy probando con el siguiente código:

Código:
$(".mostrar").click(function(){
  $(this).next(".contenido-a-mostrar").toggle();
  $(this).toggleClass("active");
});
Código HTML:
<a href="#" class="mostrar">Mostrar Contenido</a>
                
<div class="contenido-a-mostrar">
  <p>Este contenido esta oculto</p>
</div> 

Con ese código se muestra y oculta el div dando click en el enlace. Pero lo que quiero es que se oculte dando click en cualquier lugar del body y no solo en el enlace.

Ademas no se si lo estoy haciendo bien o si hay una mejor manera de hacerlo.

Aquí pueden ver como funciona ahora: http://jsfiddle.net/pitufoweb/NBYKZ/




Saludos
__________________
------------- " La felicidad no llega de afuera, nace desde dentro. " -------------
  #2 (permalink)  
Antiguo 06/03/2013, 06:30
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 4 meses
Puntos: 188
Respuesta: Mostrar div onclick

<body><div id="divOcultacionClick">...tuHtmlAqui...</div></body>

Le asocias el click al id de este elemento y haces que busque lo que quiera ocultar.

No estoy seguro pero es posible que tengas que jugar con el z-index de los divs por que si no puede que se detecte el click sobre el body y priorice sobre el click al link.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 06/03/2013, 06:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 meses
Puntos: 454
Respuesta: Mostrar div onclick

Pon un evento de click en el body $('body').click(...).
En la función, en vez de $(this) tendrás que usar un $('.contenido-a-mostrar") para ocultar el contenido.

El el click del enlace, tienes también que cancelar el evento para que no se propague hasta el body y lo oculte, llamando a event.stopPropagation() http://api.jquery.com/event.stopPropagation/

Código Javascript:
Ver original
  1. $(".mostrar").click(function(event){
  2.   $(this).next(".contenido-a-mostrar").toggle();
  3.   $(this).toggleClass("active");
  4.   event.stopPropagation(); // Para evitar que llegue también al body.
  5. });

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 07/03/2013, 13:05
Avatar de pitufoweb  
Fecha de Ingreso: enero-2008
Ubicación: Un Mundo Raro
Mensajes: 1.148
Antigüedad: 17 años
Puntos: 181
Respuesta: Mostrar div onclick

Gracias a los dos por la ayuda.

Voy a probar con eso que me dijeron y les digo como me fue.



Saludos
__________________
------------- " La felicidad no llega de afuera, nace desde dentro. " -------------
  #5 (permalink)  
Antiguo 07/03/2013, 17:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 6 meses
Puntos: 1567
Respuesta: Mostrar div onclick

Redondeando la idea de @chuidiang, dependiendo del contenido de tu "body" puede que no te funcione correctamente, es preferible que se lo apliques al html completo
imaginate este ejemplo

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. $(document).ready(function(){
  10. $(".contenido-a-mostrar").hide();
  11. $(".mostrar").click(function(event){
  12. $(".contenido-a-mostrar").toggle();
  13.  $(this).toggleClass("active");
  14.  event.stopPropagation(); // Para evitar que llegue también al body.
  15. });
  16. $("html").click(function(){ // reemplaza html por body
  17. $(".contenido-a-mostrar").hide();
  18. });
  19. });
  20. //]]>
  21. </head>
  22. <a href="#" class="mostrar">Mostrar Contenido</a>
  23. <div class="contenido-a-mostrar">
  24.   <p>Este contenido esta oculto</p>
  25. </div>
  26. </body>
  27. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: onclick
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:40.