2016-09-09 2 views
0

Я создаю loginscript и хочу добавить «функцию», после отправки формы, я хочу, чтобы она подождала 1-2 секунды до входа в систему.Требуется тайм-аут или задержка при загрузке, Ajax jquery

Я попытался заставить его работать, но загрузка просто мигает и не задерживается, как я хочу. Смотрите следующий 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); 

ответ

0
$('body').delay(2000).queue(function(nxt) { 
    $(this).load('home.php'); 
    nxt(); 
}); 
+1

это был помечен для просмотра. Вы должны объяснить свой ответ, OP может не понимать значение кода, который вы написали. – ADyson

+0

Пожалуйста, всегда давайте некоторое объяснение, а не только простой код – andreas

Смежные вопросы