0

我是新手,我正在使用 Phonegap、jquery 和 jquery-mobile 开发一个应用程序。我的主页有几个部分页面的脚本加载,如下所示:

<div id="breakfast" data-role="page"></div>                         
<script>$( "#breakfast" ).load( "partials/breakfast.html" );</script>

这些部分中的任何一个都有一个像这样的导航栏:

<div data-role="navbar" style="background:black;" id="tab">      
  <ul>                                                           
    <li><a href="#"                                              
        data-role="tab"                                          
        class="ui-btn-active ui-state-persist">Breakfast</a></li>
    <li><a href="#lunch" data-role="tab"                         
        data-transition="slide">Lunch</a></li>                   
    <li><a href="#snack" data-role="tab">Snack</a></li>          
    <li><a href="#dinner" data-role="tab">Dinner</a></li>        
    <li><a href="#other" data-role="tab">Other</a></li>          
  </ul>                                                          
</div>

我的问题是数据转换不起作用,因为在请求页面之前,页面不会加载到 dom 中。我可以浏览所有页面,但数据转换不起作用。

我阅读了官方文档,发现可以使用以下方法预取页面:

<a href="prefetchThisPage.html" data-prefetch> ... </a>

但这也行不通。

我想要的是继续使用我的部分页面来保持我的主页清洁并使数据转换工作。

有人有线索吗?

提前致谢。

4

1 回答 1

1

您没有使用正确的功能。

Functionload是一个 jQuery 函数,虽然它工作得很好,但它不应该与 jQuery Mobile 一起使用。jQuery Mobile 的工作方式有点不同,如果你想预加载页面,你需要使用 jQuery Mobile 版本的函数加载。它将确保页面成功加载到DOM.

这个方法称为 loadPage ,官方信息可以在这里找到。与加载功能不同,这个不需要目标位置,它将由 jQuery Mobile 处理。您只需要在正确的时刻初始化它。通常在pageinit活动期间,会注意在显示初始应用页面之前加载页面。

因为您称自己是新手,所以请看一下这篇文章,它将向您展示什么是页面事件以及如何使用它们。

如果您仍然无法使其工作,我将为您创建一个工作示例。

于 2013-09-29T19:28:15.577 回答