0

我正在使用以下代码从数据库中获取数据(从cs页面本身我正在创建html代码)并将html代码绑定到div。

问题:

如果数据库大小较大,则需要一些时间才能显示结果。那时我想在那个位置放置一个 loading.gif 图像。一旦它得到数据,我必须隐藏加载图像。

编辑:

问题:一旦它被隐藏,那么 show() 就不起作用了。

 <div id="searchContainer" class="search_outer">
        <div id="Loading"></div></div>

代码:

    $.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  data: "{ searchText: '" + searchText + "', product: '" + product + "', category: '" + category + "', artist:'" + artist + "'}",
                  url: "Search.aspx/FetchSearchResult",
                  dataType: "json",
                  success: function(data) {  $("#Loading").hide(); $("#searchContainer").html(data.d[0]);}});


     $("#ajax-query-place").ajaxStart(function() {
                      $("#Loading").show();
                  });

吉萨。

4

3 回答 3

1

简单:在启动 ajax() 方法之前,显示微调器图像。在success方法中,再次隐藏。

于 2010-05-19T12:10:32.747 回答
1
$.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  data: "{ searchText: '" + searchText + "', product: '" + product + "', 
                  category: '" + category + "', artist:'" + artist + "'}",
                  url: "Search.aspx/FetchSearchResult",
                  dataType: "json",
                  success: function(data) { $("#searchContainer").html(data.d[0]);
                                            $("#loading-image").hide();
}});

$("#ajax-query-place").ajaxStart(function(){
      $("#loading-image").show();
});

$("#ajax-query-place") 是获取或发送 ajax 查询的元素。

于 2010-05-19T12:15:31.640 回答
1

问题在于您的success:回调。当你这样做时:

$("#searchContainer").html(data.d[0]);

您正在覆盖#Loading元素,因为它在里面#searchContainer

改为使用append()

function(data) {  
    $("#Loading").hide(); 
    $("#searchContainer").append(data.d[0]);
}

或者只是将元素移到#Loading元素之外#searchContainer


编辑:

我猜你没有一个叫做#ajax-query-place.

你应该使用:

$("#searchContainer").ajaxStart(function() {
     $("#Loading").show();
});
于 2010-05-19T13:20:56.390 回答