$(“Div”)。load()在完成$(document).ready()后附加html页面写入$(document).ready()

时间:2018-03-13 11:13:18

标签: javascript jquery jsp

很抱歉,如果此类问题已经得到解答。 我想在$("Div").load()内使用$(document).ready()添加页面。 页面正在加载但它没有在其变量中显示任何内容。

我的代码中的步骤:

  1. 页面开始加载
  2. 值来自后端代码(spring java)
  3. 存在值时加载特定页面并在页面上显示。
  4. 如果值为null,请不要加载页面。
  5. Jquery版本:“2.1.3”

    以下是我的代码:

    $(document).ready(
                if(condition1){
                    var var1= data //some json data;
                    $('#divId').load('url/mypage.jsp');
                    if(condtition == true){
                        myFunctionToProcessData(var1);          
                }
                }
    )   
    

    我尝试过ajax调用,但它无效。

    完成后,我可以看到我的页面已加载并附加在分区中但未在UI上显示并且具有空变量。

    请帮忙。

1 个答案:

答案 0 :(得分:0)

感谢您的回复。我无法透露我的完整代码,因此制作了一个片段,以便了解我想要的内容。问题现在已经解决。

问题是:我想在$(document).ready()内的某些条件下附加一个JSP,但是$(document).ready()的工作是这样的,它确保执行写入其中的方法和条件。 问题是:

同时调用方法“myFunctionToProcessData”和“$('#divId').load('url/mypage.jsp');”,并且在调用方法的同时HTML未完成,由于此原因,我的方法未找到设置值的除法做其他验证。

为了解决这个问题,我使用了以下方法:

  1. 使用.load函数附加html / jsp页面。
  2. 使用ajax方法获取数据。
  3. 执行步骤: 1.代码在一段时间内附加HTML(使用setTimeout函数) 2.执行$(document).ready()中的所有行后,调用ajax函数 3.现在myFunctionToProcessData找到分区来设置值和在UI上显示的正确输出。

    代码:

    $(document).ready(
                if(condition1){
                    var var1= data //some json data;
                      setTimeout(function() {
                    $('#divId').load('url/mypage.jsp');
                    }, 10);
                    if(condtition == true){
                     $.ajax({
                            type : "GET",
                            contentType : "application/json",
                            data : "&sid=" + Math.random(),
                            url : "url", // change to full path of file on server
                            success : function (data) {
                        myFunctionToProcessData(var1); 
                        });         
                }
                }
    )
    

    这只是一种解决方法,以确保myFunctionToProcessData仅在jsp成功附加到其中后执行。 现在myFunctionToProcessData正在执行。