Jquery Ajax在获取数据时加载图片

3

我正在使用Jquery Ajax函数在点击事件中从数据库获取数据。

这个函数可以正常工作并显示数据。但是它需要一些时间来加载数据,因此我想在数据被获取时放置一个加载图像。

我使用了以下方法:

<script type="text/javascript">
    jQuery(function($) {
        $(document).ready(function() {
            $("#imgs").hide();
            $(".letter").bind('click', function(){
                $("#imgs").fadeIn();
                var val = $(".letter").val;
                var site = '<?php echo site_url(); ?>';
                $.ajax({
                    url: site+'/wp-content/themes/premiumnews/newContent.php?letter='+$(this).html(), 
                    success:function(data){
                        $("#imgs").hide();
                        $("#content1").html(data);
                    }
                });
            });
        });
    });
</script>

当我点击按钮时,会出现加载图片,但成功后图片应该消失,但在我的情况下它仍然存在。我的代码有问题吗?还是我使用了错误的方法?
4个回答

11

这是我过去一直使用的:

$('#loading_div').hide().ajaxStart(function(){
    $(this).show();
}).ajaxStop(function() {
    $(this).hide();
});

2
在调用$.ajax()之前,请执行以下操作。在ajax调用之前,将整个HTML替换为此内容。然后在成功时,整个HTML将被替换为您的内容。
$("#content1").html("<img style=\"margin-left: auto; margin-right: auto;\" src=\"ajax-loader.gif\" alt=\"Loading...\" title=\"Loading...\" />");

0
$("#report").live( "submit" , function(){
    // Add loading image until get the results
    $("#loading_div").html("<img style=\"margin-left: auto; margin-right: auto;\" src=\"ajax-loader.gif\" alt=\"Loading...\" title=\"Loading...\" />"); 

    var formdata = $(this).serialize(); // Get 
    $.post( "ajax_report.php", formdata, function( data ) {
    $("#results").html ( data ); // Add success data in '#results' element
    $("#loading_div").empty(); // Remove loading image on success
        });

        return false;
});

在你的页面中添加这些行。

<span id="loading_div"></span>
<span id="results"></span>
<form id="report" name="report" action="" method="post">
    <input name="firstname" value=""></input>
    <input name="middlename" value=""></input>
    <input name="lastname" value=""></input>
</form>

5
欢迎来到 Stack Overflow!请不要仅仅贴出一大段代码,而是需要解释这段代码是如何解决所提出的问题的。如果没有解释,那么这并不是一个答案。 - Martijn Pieters

0

从我所看到的,你的代码看起来很好。你确定成功函数被调用了吗?尝试在成功函数中添加alert(""),看看它是否被成功调用。如果没有,那就是你的问题所在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接