0

div コンテナーに jQuery ajax を介していくつかの結果を読み込んでいます。2 秒後に結果をユーザーに表示したい

次のコードを使用しています

<script type="text/javascript">
$(function() {
    $("#submit").click(function() {
        $('#myform').slideToggle('#loading');
        $('#loginhandle').show("slow");
        var name = $("input#name").val();
        var age = $("input#age").val();
        var dataString = 'name='+ name + '&age=' + age ;
        $.ajax({
            type: "POST",
            url: "results.php",
            data: dataString,
            success: function(msg) {
                $('#loading').slideToggle('#results');
                $('#results').show("slow");
                $('#results').html(msg)
                .hide()
                .fadeIn(1500, function() {
                });
            }
        });
        return false;
    });
});
</script>

contianerで結果を表示

<div id='loading' style='display:none'>
Please wait for while
</div>

<div id='results' style='display:none'>
<div id='results' class='results'></div>
</div>

この部分のコードを変更しました

$('#loading').slideToggle('#results');

setTimeout(function() {
    $('#loading').slideToggle('#results');
}, 2000);

しかし、コンテナのロードを遅らせるだけなので、「お待ちください」と言っている間に結果が表示されるので、どうすれば遅らせることができますか?

4

3 に答える 3

3

誤解している場合は訂正してください。ただし、すべてを遅らせるには、すべての成功関数コードを setTimeout 関数に入れます。

success: function(msg) {
   setTimeout(function() {
     $('#loading').slideToggle('#results');
     $('#results').show("slow");
     $('#results').html(msg).hide().fadeIn(1500, function() {

     });}, 2000);      
 });
于 2013-10-18T21:54:41.950 に答える
2

successコールバックを変更するだけです。

success: function(msg) {
    setTimeout(function() {
        $('#loading').slideToggle('#results');
        $('#results').show("slow");
        $('#results').html(msg).hide().fadeIn(1500, function() {

        });
    }, 2000);
}
于 2013-10-18T22:01:49.767 に答える
1

必要な結果を得るには、コードを変更する必要があります

setTimeout(function() {
   $('#loading').slideToggle('#results');
   $('#results').show("slow");
   $('#results').html(msg)
}, 2000);

その理由は、 setTimeout は、パラメーターとして渡すクロージャーに含まれるコードのみを遅延させるためです。

于 2013-10-18T22:06:41.253 に答える