需要加载时的超时或延迟,Ajax jquery



我正在制作一个loginscript,并希望添加一个"功能",即在他们提交表单后,我希望它等待1-2秒,直到它登录。

我试图让它工作,但加载只是闪烁,不要延迟,因为我想要的。参见下面的jquery:

$(document).on({
ajaxStart: function() { $body.addClass("loading");    },
 ajaxStop: function() { $body.removeClass("loading"); }    
});

$(document).ready(function() {
        $('#login').click(function()
            {
              var my_delay = 2000;
              var username=$("#username").val();
              var password=$("#password").val();
              var dataString = 'username='+username+'&password='+password;
              if($.trim(username).length>0 && $.trim(password).length>0)
              {
                 $.ajax({
                 type: "POST",
                 url: "ajaxLogin.php",
                 data: dataString,
                 cache: false,
                 beforeSend: function(){      
                   $("#login").val('Connecting...');},
                 success: function(data){
                   if(data)
                   {
                       $("body").addClass("loading").delay(6000);   // <-- This I want to show 2 seconds before or meanwhile it loads home.php
                       $("body").load("home.php").hide().fadeIn(1500);
                   }
                   else
                   {
                       $('#box').shake();
                       $("#login").val('Login')
                       $("#error").html("<span style='color:#cc0000'>Fel:</span> Felaktigt anv eller lös. ");
                   }
                 }
           });
        }
        return false;
    });

我试过这个,但它只是使加载停留,并没有重定向到home.php后3000ms。

 $("body").setTimeout("load('home.php');", 300);
$('body').delay(2000).queue(function( nxt ) {
    $(this).load('home.php');
    nxt();
});

相关内容

  • 没有找到相关文章

最新更新