2013-04-08 3 views
1

Как запустить функцию после выполнения эффекта, как задержка выполнения указанной функции через определенное время? Я попробовал установить тайм-аут, и это не сработало для меня.Запуск функции после выполнения эффектов

Вот мой код

<script> 
    $("#findtext").keyup(function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13) 
     { 
      explodeEffect(); 

     } 

      $.ajax({ 
       url: 'resultFindFriend.php', 
       type: 'post', 
       async: false, 
       data: { dataFriend: $(this).val() }, 
       success: function (data) { 
        $('.outputfindfriend').html(data); 
       } 
      },setTimeout(150)); 

    }); 

    function explodeEffect() { 
     $("#explodesearchresult").toggle("explode"); 
     setTimeout(1000); 
     window.location("http://localhost/index.html"); 
    }; 

    $("#buttonfriend").click(function() { 
     explodeEffect(); 
     return false; 

    }); 



</script> 

ответ

4

Это выполнимо с JQuery-х .toggle(), просто добавить функцию в качестве второго аргумента.

Попробуйте это:

function explodeEffect() { 
    $("#explodesearchresult").toggle(400, function() { 
    setTimeout(function() { 
     window.location.href = "http://localhost/index.html"; 
    }, 1000); 
    }); 
} 

будет переадресован на страницу с 1 секунду после того, как разнесения эффект закончил.

+0

извините, но он не работал для меня .. он не перенаправил меня на другую страницу через 1 секунду. –

+0

@rodolfonavalon - Это была проблема с моим копированием и вставкой 'window.location'. Попробуйте отредактированный ответ. – Aiias

+0

Да, я меняю его на window.location.href = "http: //localhost/index.html"; и теперь он благодарит вас за вашу помощь, сэр. –