1

单击 jsp (1.jsp) 中的加载按钮时,另一个 jsp(2.jsp) 会加载到原始 jsp(1.jsp) 的 div 元素中。这个加载的 div jsp 有一些大的数据表和 html 元素,需要一些时间来配置(几秒钟)。在此期间,向用户显示加载对话框或等待屏幕会很有用,因为 jsp 尚未完全准备好。我尝试使用 jquery modal 以及 jquery show/hide 如下

   $("#loadpage").show();       
   $("#divElement").load("2.jsp");               
   $("#loadpage").hide();

但问题是在 2.jsp 完全加载之前调用了 hide()。如何保持加载 gif 直到 2.jsp 完全加载????

4

2 回答 2

2

只需使用加载函数的回调函数即可

 $("#divElement").load("2.jsp", function () {
     $("#loadpage").hide();
 });

回调函数 如果提供了“完成”回调,则在后处理和 HTML 插入完成后执行。回调会为 jQuery 集合中的每个元素触发一次,并依次设置为每个 DOM 元素。

有关更多信息,您可以查看加载的 JQuery 文档

编辑(评论后):如果要检查错误,可以通过以下方式实现该功能:

function(response, status, xhr) {
    if (status == "error") {
        // Do something on error
    } else {
        $("#loadpage").hide();
    }
}
于 2012-10-31T19:50:14.370 回答
0

您可以在负载中传递一个函数。一旦 2.jsp 下载完成,它将被调用。

  $("#divElement").load("2.jsp", function(){

         // content is loaded
  }); 
于 2012-10-31T19:50:11.110 回答