jquery移动更改页面

Posted

技术标签:

【中文标题】jquery移动更改页面【英文标题】:Jquery mobile change page 【发布时间】:2012-04-02 02:17:23 【问题描述】:

我有来自该网站的网页的两列布局, http://jquerymobile.com/demos/1.0.1/

现在他们已经提供了 changePage 使用的规定 <a href="#xxx" data-role="button">Sample</a>

但我的问题是如何使用代码以编程方式更改页面。

$.mobile.changePage("#xxx"); 不适合我

【问题讨论】:

【参考方案1】:

这是一个非常简单的例子:http://jsfiddle.net/shanabus/YjsPD/

$.mobile.changePage("#page2");

文档:http://api.jquerymobile.com/jQuery.mobile.changePage/

其他例子:

//transition to the "about us" page with a slideup transition
$.mobile.changePage( "about/us.html",  transition: "slideup" );

//transition to the "search results" page, using data from a form with an ID of "search""   
$.mobile.changePage( "searchresults.php", 
    type: "post",
    data: $("form#search").serialize()
);

//transition to the "confirm" page with a "pop" transition without tracking it in history   
$.mobile.changePage( "../alerts/confirm.html", 
    transition: "pop",
    reverse: false,
    changeHash: false
);

更新

正如 Chase Roberts 在下面的 cmets 中指出的那样,这种 changePage 方法在 1.4 版中已被弃用。这是新的pagecontainer change 事件的文档。

例子:

$.mobile.pageContainer.pagecontainer("change", "#page",  options );

在这个 SO 问题上也解决了这个问题:How to change page in jQuery mobile (1.4 beta)?

【讨论】:

谢谢@shanabus 这个答案在使用简单页面时有效。但我使用的是左侧边栏,它是一个菜单,右侧窗格是内容窗格。基于侧面的变化窗格,必须加载内容页面。因为我想要动态内容,我需要以编程方式进行页面转换。 如果您查看文档页面的操作方式,它会重新加载整个页面,而不仅仅是内容窗格。 谢谢@shanabus 有没有办法单独重新加载内容窗格? Siva 请发布解决方案或将其标记为答案,如果这实际上是答案 "注意:jQuery.mobile.changePage 自 jQuery Mobile 1.4.0 起已弃用,将在 1.5.0 中删除。请改用 pagecontainer 小部件的 change() 方法。"有没有人有任何使用 pagecontainer 小部件的例子?【参考方案2】:

我知道这已经被回答了,但是为什么它不起作用的正确答案肯定是语法不正确?

$.mobile.changePage 需要 DOM 对象(用于使用哈希语法在同一 HTML 文件中显示页面)而不仅仅是字符串。所以给出的例子的正确语法是:

$.mobile.changePage($("#xxx"));

这应该是一种享受!

希望对你有帮助

【讨论】:

【参考方案3】:
$.mobile.changePage($("#page2")); 

是在哪个 div 是可见页面之间进行更改的正确方法。

如果你使用

$.mobile.changePage("#page2");

将重新加载 DOM,并触发任何 ondocumentready 事件。

【讨论】:

+1 MM - 根据我的经验,如果您从文件中加载 HTML 页面,那么来自该文件的任何 ChangePage 调用都需要使用完整的 DOM 对象,而不仅仅是标签(如果回调)父母。【参考方案4】:

不,这是正确的语法 $.mobile.changePage("#page2");$.mobile.changePage( "about/us.html"); 请参阅 Api

【讨论】:

【参考方案5】:

您首先检查 div 块的开始和结束标记 bcoz 如果某些标记丢失,则页面转换是不可能的。 之后使用以下代码

$.mobile.changePage("#page2");

【讨论】:

【参考方案6】:
function signin() 

    alert('singin button has been clicked');
    $.ajax(
        type: 'POST',
        url: 'http://localhost:8080/json/login',
        dataType: "json",
        headers: 'Authorization':'Basic '+ btoa('abc' + ':' + '12345'),
        contentType: 'application/json',
        data:loginFormToJSON(),
        success: function(data, textStatus, jqXHR)
        
            if(data.token !="ErrorID-11000")
                alert('login successfully');
                //document.location.href = "accountinfo.html";
                //document.getElementById("loginBtn").replace="accountinfo.html";
                $.mobile.changePage("accountinfo.html");
            

            else
                alert('userid password did not match');
            
        ,
        error: function(jqXHR, textStatus, errorThrown)
            alert('login error:'+errorThrown + textStatus);
        
    );


从上面的代码中,我在登录页面并在成功登录后转到帐户页面,这适用于 Jquery mobile 1.4。

希望对您有所帮助。

【讨论】:

以上是关于jquery移动更改页面的主要内容,如果未能解决你的问题,请参考以下文章

jQuery自动完成列表位置更改

jquery mobile上页面更改后swiper分页制动

如何在jquery mobile中更改页面时避免黑屏

更改设备方向上的图像 jquery-mobile

选择相同值时的jQuery选择更改事件

如何从代码中更改 jquery 移动翻转开关状态