jquery重定向到页面元素,但没有显示任何内容?

时间:2012-05-31 07:43:53

标签: javascript jquery jquery-ui jquery-mobile

  

可能重复:
  how to display jquery page(inside a div) using javascript?

这是我的javascript代码

function loginPostData(jsonRequest)
{
    alert("hello");
    $.post("http://localhost:8080/edserve/MobileServlet", 
            JSON.stringify(jsonRequest), 
            function(data) 
            {
                var obj = JSON.stringify(data);
                alert(obj);
                if(data.status=="success")
                {
                    <!--problem lies here-->
                    $.mobile.changePage( "#mainMenu");
                    //$('#result').load('index.html#mainMenu');
                    // . load also give the same result
                }
                else
                {
                    if(data.message=="user not verified")
                    {
                        //display verification page 
                    }   
                }   
            }, "json");
}

问题:jquery加载主菜单页面,但没有显示任何内容,直到我刷新页面

只是我页面的快速参考

<div data-role="page" id="login">
    // other page content
            <div id="divrightButton">

            <!-- calling loginSubmit which calls loginPostData method/function-->   
            <a class="bluebutton" href="#" onclick="loginSubmit(); return false;">Login</a>

            </div>
        </form>
</div>

<!--main page-->
<div data-role="page" id="mainMenu">

     Main menu
</div>

我也知道jquery在同一页面转换中存在一些问题 https://github.com/jquery/jquery-mobile/issues/2529

但如何解决这些问题,我对这个节点没有任何线索 为了以防万一,我还尝试了以下重定向/加载

$.mobile.changePage("#mainMenu",{allowSamePageTransition: true }); 
$('#result').load('index.html#mainMenu');
$.mobile.changePage( $("#mainMenu"));

没有人工作,我的意思是它有效但结果相同,没有显示

3 个答案:

答案 0 :(得分:1)

试试这个..

if( data.status == "success" ) {
    window.location = 'index.html#mainMenu';
    return;
}

刷新页面后,只有html可以运行,只显示你的html,而不是你的服务器在刷新页面后的响应。如果你想在你的mainMenu div上显示你的服务器响应,那么你需要使用Ajax调用并在获得响应之后所以你编写代码来在html中显示数据..

答案 1 :(得分:1)

尝试使用此功能

  function loginPostData(jsonRequest)
    {
        alert("hello");
        $.post("http://localhost:8080/edserve/MobileServlet", 
                JSON.stringify(jsonRequest), 
                function(data) 
                {
                    var obj = JSON.stringify(data);
                    alert(obj);
                    if(data.status=="success")
                    {
                        $('#mainmenu').children().remove(); //clears div
                        $('#mainmenu').html(data);  //Loads data

                    }
                    else
                    {
                        if(data.message=="user not verified")
                        {
                            //display verification page 
                        }   
                    }   
                }, "json");
    }

答案 2 :(得分:0)

使用此代码重定向/显示特定的div元素

$.mobile.changePage("#mainMenu",{allowSamePageTransition: true });

并下载以下css文件,它必须在页面/ div元素之间进行转换

jquery.mobile.transitions.css