1

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

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

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

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

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

感谢您的投入!

4

1 回答 1

2

这很简单。

  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/

于 2013-02-28T14:59:02.127 回答