如何确定是否已加载html div元素

时间:2012-10-31 19:47:57

标签: javascript jquery modal-dialog

在点击jsp(1.jsp)中的加载按钮时,另一个jsp(2.jsp)被加载到原始jsp(1.jsp)的div元素中。 这个加载的div jsp有一些大的datatable和html元素,需要时间来配置(几秒钟)。在这段时间内,当jsp没有完全准备就绪时向用户显示一个加载对话框或等待屏幕会很有用。 我尝试使用jquery模式以及jquery show / hide如下

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

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

2 个答案:

答案 0 :(得分:2)

只需使用加载功能的回调功能

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

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

有关详细信息,请参阅JQuery Documentation of load

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

function(response, status, xhr) {
    if (status == "error") {
        // Do something on error
    } else {
        $("#loadpage").hide();
    }
}

答案 1 :(得分:0)

你可以在加载中传递一个函数。一旦下载2.jsp完成就会被调用。

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

         // content is loaded
  });