在JQM中使用页面ID刷新页面

时间:2012-04-05 15:04:49

标签: jquery html5 jquery-mobile

我是JQM的新手。 我有文件index.html,其中我使用div标签创建了许多页面 e.g

 <div data-role="page" id="pg1 "></div> 

现在我想使用页面id重新加载一个特定的页面。如何使用location.reload()或其他方式执行此操作?

感谢..

2 个答案:

答案 0 :(得分:1)

如果您使用的是多页面模板,其中所有伪页面都在一个文档中,那么您无法默认刷新页面,因为它只存在于当前DOM中。您可以编写一个在AJAX请求中请求相同文档的函数,然后从响应中获取伪页面并替换DOM中的当前页面:

function replace_multipage_template (SELECTOR) {

    //show the loading spinner
    $.mobile.showPageLoadingMsg();

    $.ajax({

        //request the same document as the current URL
        url     : window.location.href,
        success : function (response) {

            //select just the desired pseudo-page
            var $ele = $(response).find(SELECTOR);

            //replace the current pseudo-page with the new one
            $(SELECTOR).replaceWith($ele);

            //hide the loading spinner
            $.mobile.hidePageLoadingMsg();

            //navigate to the refreshed pseudo-page
            $.mobile.changePage($ele);
        },
        error   : function (jqXHR, textStatus, errorThrown) { /*make sure to handle errors*/ }
    });
}

您可以在click事件的事件处理程序中使用此代码,以获取将用户引导至您要刷新的页面的链接:

//bind via delegation to the click events for links that target a specific pseudo-page
$(document).delegate('a[href="#some-page-id"]', 'click', function () {

    //call the function from above, using the HREF attribute as the SELECTOR variable
    replace_multipage_template($(this).attr('href'));

    //prevent the default behavior of the link
    return false;
});

答案 1 :(得分:1)

http://jquerymobile.com/test/docs/api/methods.html

将$ .mobile.changePage方法与reloadPage选项

一起使用