如何测试页面是否已在Jquery Mobile中“页面创建”?

时间:2013-02-28 13:37:55

标签: javascript jquery events jquery-mobile

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

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

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

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

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

感谢您的投入!

1 个答案:

答案 0 :(得分:2)

这很简单。

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

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

    实例:http://jsfiddle.net/Gajotres/HthYd/

  2. 如果您使用触发器('create')仅增强页面内容div,请使用此选项来检查内容容器是否已增强:

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

    实例:http://jsfiddle.net/Gajotres/8jcGb/

  3. 当然,只有在您增强整页或整个内容的情况下,此案例才有效。

    编辑:

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