Javascript 显示模糊上的隐藏元素时

Javascript 显示模糊上的隐藏元素时,javascript,jquery,Javascript,Jquery,我不明白为什么我的功能不起作用。 它会显示登录表单,但当我模糊(单击表单以外的其他位置)时,它不会隐藏 这是我的错误代码: $(document).on('click', '#login-btn', function(){ var $form = $("#login"); $form.show("slow" ); $("#login").on('blur', function (){ $form.hide("slow"); })

我不明白为什么我的功能不起作用。 它会显示登录表单,但当我模糊(单击表单以外的其他位置)时,它不会隐藏

这是我的错误代码:

$(document).on('click', '#login-btn', function(){ 
      var $form = $("#login");
      $form.show("slow" );
      $("#login").on('blur', function (){
        $form.hide("slow");
       });      
 });

您可能不希望仅在触发单击事件时才处理此模糊。 将模糊事件移出单击事件

var $form = $("#login");    
$(document).on('click', '#login-btn', function(){ 
    $form.show("slow" );  
    $('#loginUsername').focus(); 
});
$form.on('focusout', function (){
    $form.hide("slow");
});
您可以这样做:

var $form = $("#login");
$(document).on('click', '#login-btn', function () {    
    $form.show("slow");
}).on('blur', '#login', function () {
    $form.hide("slow");
});

你能分享
html
部分吗?:)只有单击“登录btn”,才能添加模糊事件。palaѕѕѕѕѕѕѕѕѕѕѕѕѕѕѕѕѕѕ。您可能需要将
blur
替换为
focusout
(在palash的回答中),这样事件就会出现在表单中。