Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/11/2013, 11:48
Avatar de America|UNK
America|UNK
 
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: Hacer desaparecer un div cuando ocurran dos 2 cosas

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  4. <script>
  5. $(document).ready(function(){
  6.  
  7.     var result = $("#result");
  8.  
  9.     $("#search").keyup(function(){
  10.         result["slide" + ($(this).val().length >= 2 ? "Down" : "Up")]();
  11.     });
  12.    
  13.     //es un tipo de simulación de "blur" de cualquier objeto
  14.     //si el objeto clickeado no contiene clase no_cerrar, el DIV desaparece (slideUp)
  15.    
  16.     $(document).click(function(e){
  17.         //objeto clickeado
  18.         var el = $(e.target),
  19.         //si el objeto que lo contiene tambien tiene la clase .no_cerrar
  20.         padre = el.parents(".no_cerrar"),
  21.         //solo mostrar si hay resultados (un ejemplo)
  22.         aparece = $("#search").val().length >= 2 ? true : false;
  23.        
  24.         result["slide" + (aparece && ($(e.target).hasClass("no_cerrar") || padre.length > 0) ? "Down" : "Up")]();
  25.     });
  26.  
  27. });
  28. </script>
  29.  
  30. <style>
  31. .b { height:26px}
  32. ul {margin:0;padding:0}
  33. .b, #result {width:200px; border:1px solid #000;}
  34. #result {background:black; color:#fff; display:none}
  35. li {width:100%; line-height:26px; text-align:center; border-top:1px solid #666}
  36. input {width:100%; height:100%}
  37. </style>
  38. <body>
  39. <b>test </b> <span>test objeto</span>
  40. <div class="b"><input type="text" id="search" placeholder="Escribe 2 letras" class="no_cerrar" /></div>
  41. <ul id="result" class="no_cerrar">
  42.     <li>Result 1</li>
  43.     <li>Result 2</li>
  44.     <li>Result 3</li>
  45. </ul>
  46. </body>
  47. </html>
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */