jQuery Mobile点击即可刷新当前页面

时间:2015-10-22 08:00:34

标签: javascript jquery html css jquery-mobile

我在查询移动设备中有一个多页面模板。如何通过单击超链接或按钮刷新当前页面?我正在使用JQM版本1.4.5

我尝试使用how to refresh(reload) page when click button in Jquery mobile中建议的以下代码,但是,它没有按预期工作:

// Refresh the store main page - experimental
$(document).on('click', '#aStoreReload', function (event) {
    $.mobile.changePage(window.location.href, {
        allowSamePageTransition: true,
        transition: 'none',
        showLoadMsg: false,
        reload: true // tried reloadPage: true also
    });
});

它将返回带有URL的主页面。我的意思是本地服务器中的http://localhost:56235/main.html#storeMainPage。但是,JsBin显示空白页面而jsfiddle无效。单击商店链接以获取其具有刷新按钮的页面。

如何以正确的方式刷新页面(视图)?

修改

我在点击事件中尝试使用以下脚本:

$.mobile.changePage($("#storeMainPage"), { transition: 'slidedown' });
$(document).pagecontainer("load", "#storeMainPage", { reload: true });

第一个像什么都不做,第二行给出错误Uncaught Error: cannot call methods on pagecontainer prior to initialization; attempted to call method 'load'这是正常的,因为我们在初始化之前调用pagecontainer。

3 个答案:

答案 0 :(得分:1)

使用pagecontainer小部件的更改方法(不加载):

$(document).on("pagecreate","#storeMainPage", function(){ 
    $(document).on('click', '#aStoreReload', function (event) {
        $( ":mobile-pagecontainer" ).pagecontainer("change", "#storeMainPage", {  reload : true, allowSamePageTransition : true, transition : "none" });
    });    
});

这将导致pageshow事件重​​新触发。

  

更新了 FIDDLE

答案 1 :(得分:0)

如何简单:

location.reload();

无论如何,$.mobile.changePage已被弃用:

  

注意:jQuery.mobile.changePage自jQuery Mobile 1.4.0起不推荐使用,将在1.5.0中删除。改为使用pagecontainer小部件的change()方法。

reference

答案 2 :(得分:0)

根据@ezanker的答案,最后我可以点击按钮重新加载页面。我必须在页面名称前加上哈希值才能重新加载页面并重新调用<Image Grid.Row="0" Grid.Column="0" Height="178" Source="/Assets/User.png"/> 事件中的所有ajax函数。

我使用的代码如下

pagebforeshow

请注意代码中的更改。一个文件名前缀,第二个// Refresh the store main page - experimental //$(document).on("pagecreate", "#storeMainPage", function () { $(document).on('click', '#aStoreReload', function (event) { $(":mobile-pagecontainer").pagecontainer("change", "main.html#storeMainPage", { reload: false, allowSamePageTransition: true, transition: "none" }); $('#storeMainDesc').text("Latest Store Updates"); // reset the text. }); //}); 属性。如果我使用属性reload: false,则前一页将按原样加载url;即reload: true。不知道出了什么问题。