javascript - Jquery Mobile如何测试一个页面是否已经 "pagecreated"?

标签 javascript jquery events jquery-mobile

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

问题是,如果我转到页面 A > 页面 B > 页面 A > 页面 B,在第二次访问后,页面 B 不再通过 Jquery Mobile 进行增强,尽管 pagecreate 正确触发。我卡在了一个未增强标记的页面上。

我无法在页面的单独小部件上调用 create,因为小部件将是随机类型,而且因为我无法在初始化之前调用 create。收到此错误后,我在未增强的页面上手动调用了 pagecreate,它修复了所有小部件。

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

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

感谢您的投入!

最佳答案

这很简单。

  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/

关于javascript - Jquery Mobile如何测试一个页面是否已经 "pagecreated"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136959/

相关文章:

Javascript 固定位置导航根据窗口高度/滚动量间歇性工作

javascript - 显示具有事件目标的对象的属性

javascript - 为什么 jQuery.css() 对我不起作用?

javascript - 处理空查询选择器

javascript - 一页上有多个 Fe​​atherlight 画廊,没有唯一的类

javascript - 使用分页时如何从 DataTables.net 获取所有数据行

javascript - 使用 Jquery 解析 XML

javascript - 如何迭代 jQuery 对象并等待事件?

javascript - addEventListener 下降不触发

javascript - 如果 anchor 内部有 iframe,则无法单击 anchor