Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] ¿Ocultar mi formulario de búsqueda al hacer clic en cualquier otra parte?

Estas en el tema de ¿Ocultar mi formulario de búsqueda al hacer clic en cualquier otra parte? en el foro de Jquery en Foros del Web. Que tal gente, tengo un problema que me gustaría resolver sobre mi formulario de búsqueda, el problema es que quisiera poder ocultar mi cuadro de ...
  #1 (permalink)  
Antiguo 10/10/2015, 12:50
 
Fecha de Ingreso: abril-2015
Ubicación: MEXICO
Mensajes: 15
Antigüedad: 9 años
Puntos: 0
Exclamación ¿Ocultar mi formulario de búsqueda al hacer clic en cualquier otra parte?

Que tal gente, tengo un problema que me gustaría resolver sobre mi formulario de búsqueda, el problema es que quisiera poder ocultar mi cuadro de búsqueda, al hacer clic en cualquier parte de mi documento, menos claro en mi formulario donde está mi cuadro de búsqueda. El código html y jquery que tengo es el siguiente:

HTML
Código:
//icono de search (esta dentro de un nav)
<li class="search-menu-full"><a href="javascript:;" class="buscar"><span class="icon-search"></a></li>

//Cuadro de búsqueda
<div class="search">
    <form action="" method="GET">
      <input type="text" name="name" placeholder="Buscar" class="bar-search">
      <input type="button" name="buscar" value="Buscar" class="btn-search">
    </form>
</div>
JQUERY
Código:
// variable de mi cuadro de búsqueda
Var search_open = false

//función para ocultar y mostrar el cuadro de búsqueda
  $('.buscar').click(function(){
    if (search_open == false){
      $('.search').animate({
        top:'55'
      });
      search_open = true;
    }
    else {
      search_open = false;
      $('.search').animate({
        top:'-10%'
      });
    }
  });
Aclaro que no tengo mucha experiencia con jquery sola mente lo he usado para quitar y agregar clases a elementos. Bueno pues eso sería todo les agradezco de antemano cualquier comentario o consejo que me dejen. saludos
  #2 (permalink)  
Antiguo 10/10/2015, 16:46
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 3 meses
Puntos: 18
Respuesta: ¿Ocultar mi formulario de búsqueda al hacer clic en cualquier otra parte?

hola

Para controlar la propagacion del evento puedes usar stopPropagation()
Tambien deberias de añadir una clase y eliminarla segun te interese.

Aqui tienes un ejemplo de lo que necesitas:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.   <title>titulo</title>
  3. <script src="jquery-1.11.3.min.js"></script>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
  5. body {width:100%;height:100%;}
  6. .search {position:absolute;top:-10%;background-color:yellow;}
  7. #contenedor {background-color:silver;}
  8.    
  9. <script type="text/javascript">
  10. $(document).ready(function(){  
  11.   $('body').on('click', '.escucha' , function(){    
  12.     $('.search').animate({
  13.         top:'-10%'
  14.        });
  15.        $('#contenedor').removeClass('escucha');        
  16.        });      
  17.   $('.buscar').click(function(event){        
  18.       $('.search').animate({
  19.         top:'55'
  20.         });    
  21.        
  22.       $('#contenedor').addClass('escucha');
  23.       event.stopPropagation();
  24.   });
  25.  
  26.     $('.bar-search , .btn-search').click(function(event){
  27.        event.stopPropagation();
  28.        });
  29.  
  30. });//fin de ready
  31.          
  32. </head>
  33. <div id="contenedor">
  34.     <ul>
  35.   <li class="search-menu-full"><a href="javascript:;" class="buscar"><span class="icon-search">texto</a></li>
  36.   </ul>
  37.     <div class="search">
  38.     <form action="" method="GET">
  39.       <input type="text" name="name" placeholder="Buscar" class="bar-search">
  40.       <input type="button" name="buscar" value="Buscar" class="btn-search">
  41.     </form>  
  42.     </div>
  43.      <p>texto</p><p>texto</p><p>texto</p><p>texto</p><p>texto</p>
  44. </div>
  45. </body>
  46. </html>
  #3 (permalink)  
Antiguo 12/10/2015, 11:57
 
Fecha de Ingreso: abril-2015
Ubicación: MEXICO
Mensajes: 15
Antigüedad: 9 años
Puntos: 0
Respuesta: ¿Ocultar mi formulario de búsqueda al hacer clic en cualquier otra parte?

Cita:
Iniciado por sintel_1 Ver Mensaje
hola

Para controlar la propagacion del evento puedes usar stopPropagation()
Tambien deberias de añadir una clase y eliminarla segun te interese.

Aqui tienes un ejemplo de lo que necesitas:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.   <title>titulo</title>
  3. <script src="jquery-1.11.3.min.js"></script>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
  5. body {width:100%;height:100%;}
  6. .search {position:absolute;top:-10%;background-color:yellow;}
  7. #contenedor {background-color:silver;}
  8.    
  9. <script type="text/javascript">
  10. $(document).ready(function(){  
  11.   $('body').on('click', '.escucha' , function(){    
  12.     $('.search').animate({
  13.         top:'-10%'
  14.        });
  15.        $('#contenedor').removeClass('escucha');        
  16.        });      
  17.   $('.buscar').click(function(event){        
  18.       $('.search').animate({
  19.         top:'55'
  20.         });    
  21.        
  22.       $('#contenedor').addClass('escucha');
  23.       event.stopPropagation();
  24.   });
  25.  
  26.     $('.bar-search , .btn-search').click(function(event){
  27.        event.stopPropagation();
  28.        });
  29.  
  30. });//fin de ready
  31.          
  32. </head>
  33. <div id="contenedor">
  34.     <ul>
  35.   <li class="search-menu-full"><a href="javascript:;" class="buscar"><span class="icon-search">texto</a></li>
  36.   </ul>
  37.     <div class="search">
  38.     <form action="" method="GET">
  39.       <input type="text" name="name" placeholder="Buscar" class="bar-search">
  40.       <input type="button" name="buscar" value="Buscar" class="btn-search">
  41.     </form>  
  42.     </div>
  43.      <p>texto</p><p>texto</p><p>texto</p><p>texto</p><p>texto</p>
  44. </div>
  45. </body>
  46. </html>
Muchas gracias es exactamente lo que estaba buscando, ya lo implemente en mi cuadro de búsqueda y de paso en mi menú responsivo. Saludos

Etiquetas: Ninguno
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 16:50.