【问题标题】:JQuery Mobile document ready alternativeJQuery Mobile 文档就绪替代方案
【发布时间】:2011-07-25 03:39:14
【问题描述】:

我花了几个小时尝试调试我创建的 jquery 移动页面,终于让它工作了。我已将脚本放在 data-role="page" class="page-map4" div 中。我想知道为什么会这样,我宁愿这对我来说不是魔术。如果我直接访问该页面,这并不重要,只要我从另一个 JQuery Mobile 页面访问它。

$('.page-map4').live("pageshow", function(){
        if (navigator.geolocation) {
              navigator.geolocation.getCurrentPosition(success, error);
        } else {
              error('Geolocation not supported');
        }
});

问题:为什么从另一个 JQuery Mobile 页面导航时,上述脚本必须位于页面数据角色 div 中才能正常工作?

【问题讨论】:

    标签: javascript jquery html mobile jquery-mobile


    【解决方案1】:

    对于页面事件,我只需在我的 jQuery 代码中执行此操作。这在页面的<head> 元素中的<script> 标记集中,在任何文档绑定到$.mobile 全局之后:

    $('#YOUR_PAGE_ID').live('pageshow',function(event, ui){
      yourGeoCode();
    });
    

    【讨论】:

    • 我在脚本标签集中有它,但它似乎只有在从头部拉出并放入 data-role="page" div 时才能正常工作。
    • 即使在正文中的脚本标签中,此解决方案也适用于我。谢谢!
    【解决方案2】:

    您应该使用 pageinit 事件,请参阅此帖子“Using jQuery Mobile – Remember to use pageinit() and not $(document).ready()”了解更多信息

    【讨论】: