【问题标题】:Refresh a page in JQM, then fire pageinit在 JQM 中刷新页面,然后触发 pageinit
【发布时间】:2012-07-28 23:29:46
【问题描述】:

我有以下设置:

Page1 有:

更新

  • 更新:input type="date"(在页面初始化时设置为今天)
  • 带有列表视图的链接到另一个页面 (Page2) 的按钮
  • 根据从列表中选择的用户获取更新的 div 查看页面

Page2 有:

  • 一堆链接的列表视图。

当用户单击Page2 的链接时,它会根据Page1 上的日期检查选择是否有效。如果是,那么它会返回到Page1 并使用有关选择的一堆信息更新div。如果选择无效,则会弹出一个对话框,其中包含一条消息和一个Start Over 按钮。

这一切都很好,除了我想做的是当用户点击Start Over重新加载并重定向到Page1

我就是这样做的:

<input type="button" class="reload" value="Start Over" />
$('.reload').live( "click", function()
{
    $.mobile.changePage( "#Page1", {
        transition: "slide",
        reverse: true,
        changeHash: true,
        reloadPage: true
    });
});

这有效,但是一旦页面重新加载它就不会调用pageinit

$('#Page1').live( 'pageinit',function(event){
  setTodaysDate();
});

因此日期不会显示在Page1

该页面需要重新加载,因为我必须休息 div,因此它不会显示任何有关宝贵成功选择的信息。知道如何完成这项任务吗?

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    你为什么不改用$('#Page1').on('pageshow', ...);

    【讨论】:

    • 嘿,感谢您的建议,但我只需要设置重新开始操作的日期。我刚刚意识到我的问题写错了......日期不是标签而是日期选择器。因此,如果我要使用 pageshow,当从第 2 页导航返回时,我将失去用户选择
    【解决方案2】:

    尝试将以下代码放在第 1 页,

    $(document)
      .unbind("pageshow.initializedate")
      .bind("pageshow.initializedate",
        function(event){
          setTodaysDate();
        }
      );
    

    请注意,页面初始化事件(例如 pageinit)只会在每个“页面”触发一次,而显示/隐藏事件则在每次显示和隐藏页面时触发。请注意,在 jQuery mobile 中,页面默认通过 ajax 加载并缓存。每页一次意味着它只会在页面第一次加载时触发,一旦页面被缓存并再次显示,页面初始化事件将不再执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      相关资源
      最近更新 更多