【问题标题】:How to test whether a page has been "pagecreated" in Jquery Mobile?如何在 Jquery Mobile 中测试页面是否已“创建页面”?
【发布时间】:2013-02-14 17:28:19
【问题描述】:

我有一个两页的应用程序。两个页面都有在客户端上动态创建的所有内容。

问题是,如果我去page A > page B > page A > page B,在第二次+ 访问时,Jquery Mobile 不再增强页面 B,尽管 pagecreate 触发正确。我被一页未增强的标记卡住了。

我不能在页面的单独小部件上调用create,因为小部件将是随机类型,因为我cannot call create prior to initialization。收到此错误后,我在未增强的页面上手动调用了pagecreate,修复了所有小部件。

问题是,如何检测页面是否已被 JQM 增强?因为我不想在已经增强的页面上调用它。

所以,看似简单的问题:
如何测试页面是否已被 Jquery Mobile 增强?

感谢您的意见!

【问题讨论】:

    标签: javascript jquery events jquery-mobile


    【解决方案1】:

    这很简单。

    1. 如果您使用 trigger('pagecreate') 来增强页面标记,请使用它来检查页面容器是否已增强:

      $(document).on('pagebeforeshow', '#index', function(){       
          alert($.mobile.activePage.hasClass('ui-page'));
      });
      

      现场示例:http://jsfiddle.net/Gajotres/HthYd/

    2. 如果您使用 trigger('create') 仅增强页面内容 div 使用它来检查内容容器是否已增强:

      $(document).on('pagebeforeshow', '#index', function(){       
          alert($.mobile.activePage.find('[data-role="content"]').hasClass('ui-content'));
      });
      

      现场示例:http://jsfiddle.net/Gajotres/8jcGb/

    当然,这种情况仅适用于您要增强整个页面或整个内容的情况。

    编辑:

    这是一个动态添加页面的真实示例:http://jsfiddle.net/Gajotres/8jcGb/

    【讨论】:

    • 你很快,我还为你做了一个动态添加页面的真实示例:jsfiddle.net/Gajotres/8jcGb
    • 不错。我正在用一个没有被 JQM“创建页面”的页面拉出我的头发。不知道为什么...
    • 如果你愿意,如果是简单的例子可以存档,发到我的邮箱,我看看。
    • 不简单 :-) 使用 requireJS 和 renderJS。如果你想试一试,here 是一个精简版。点击比较>返回>再次点击比较,这次页面没有“创建”
    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2012-07-01
    • 2011-12-28
    • 1970-01-01
    • 2011-11-18
    相关资源
    最近更新 更多