Скрыть форму при нажатии / выходе элемента

У меня есть пара форм на одной странице. Каждому нужно прятаться, когда я нажимаю снаружи

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 ответ

Использование: не в селекторе

$(":not(.login form input)").click(function() {
    $('.login form').hide();
    $('.layer').hide();
});
Другие вопросы по тегам