在点击/退出元素时隐藏表单

时间:2013-03-12 12:35:07

标签: jquery forms hide jquery-focusout

我在一个页面上有几个表单。当我点击外面时,每个都需要隐藏

div class="login">
  <p><a title="Entrar" href="static-login.html">Entrar</a></p>
  <form action="" class="disabled" method="post" id="login">
    <p class="close"><a title="Cerrar" href="static.html">Cerrar</a></p>
    <h2>¿Es usted ya cliente?</h2>
    <p class="email">
      <label for="email">Su correo electrónico</label>
      <input id="email" name="email" type="text" placeholder="Su correo electrónico" />
    </p>
    <p class="password">
      <label for="password">Su contraseña</label>
      <input id="password" name="password" type="text" placeholder="Su contraseña" />
    </p>
    <p class="button">
      <input type="submit" value="Entrar" />
    </p>
  </form>
</div>

所以我得到的jquery是

$(document).ready(function() {
  $('.layer').hide();
  $('.login form').hide();
  $('.login a').click(function(){
    $('.login form').toggle();
    $('.layer').toggle();
    $(".login form input:text").first().focus();
  });
  $(".login form input").focusout(function() {
    $('.login form').hide();
    $('.layer').hide();
  });
});

但是一旦我从电子邮件转移到密码,它就会隐藏所有内容.focusout无法正常工作

我尝试了$('body')。click(function(){而不是.focusout但它打破了其他jquery: - /

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用:不在选择器

$(":not(.login form input)").click(function() {
    $('.login form').hide();
    $('.layer').hide();
});