我有一个两页的应用程序。这两个页面都有在客户端动态创建的所有内容。
问题是,如果我转到页面 A > 页面 B > 页面 A > 页面 B
,在第二次访问后,页面 B 不再通过 Jquery Mobile 进行增强,尽管 pagecreate
正确触发。我卡在了一个未增强标记的页面上。
我无法在页面的单独小部件上调用 create
,因为小部件将是随机类型,而且因为我无法在初始化之前调用 create
。收到此错误后,我在未增强的页面上手动调用了 pagecreate
,它修复了所有小部件。
问题是,我如何检测页面是否已被 JQM 增强?因为我不想在已经增强的页面上调用它。
所以,看似简单的问题:
我如何测试页面是否已被 Jquery Mobile 增强?
感谢您的投入!
最佳答案
这很简单。
如果您使用 trigger('pagecreate') 来增强页面标记,那么使用它来检查页面容器是否已被增强:
$(document).on('pagebeforeshow', '#index', function(){ alert($.mobile.activePage.hasClass('ui-page')); });
如果您使用 trigger('create') 仅增强页面内容 div,请使用它来检查内容容器是否已增强:
$(document).on('pagebeforeshow', '#index', function(){ alert($.mobile.activePage.find('[data-role="content"]').hasClass('ui-content')); });
当然,这种情况仅在您增强整个页面或整个内容的情况下才有效。
编辑:
这是一个动态添加页面的真实示例:http://jsfiddle.net/Gajotres/8jcGb/
关于javascript - Jquery Mobile如何测试一个页面是否已经 "pagecreated"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136959/