2

好吧,我几天前就完成了这个问题,但不知道我是否清楚。

所以,我现在使用另一个函数做了一些更简单的事情$.mobile.loadPage

我想要做的只是将内容从另一个文件加载到 div,就像$.ajax使用普通 jquery 一样。

在我的主页中:

<div data-role="page">
    <button id="load" style="border: solid blue;">Click here to load</button>
    <div data-role="content" id="target">
    <!-- ajax load here -->
    </div>
</div>

这是来自另一个文件的 html:

<div id="secondPage" style="border:solid red;">
   <p>test</p>
</div>

最后,js:

 $("body").on("click", "#load", function () {
    $.mobile.loadPage("mobile/favorites", {
        pageContainer: $('#target'),
        type: 'post',
        reloadPage: true
    });
});

在我看来没有错误,当我在 chrome 调试中检查时,url 会加载内容。

那么,我错过了什么?

4

1 回答 1

1

您的代码正在尝试在另一页面中加载一个页面。第二页 ( id="secondPage") 缺少data-role="page"属性。

我从未尝试过完成您在此处尝试的操作,但根据文档似乎令人困惑。

该方法加载一个页面,将其插入到容器(而不是另一个页面)内部的 DOM 中。reloadPage如果加载的页面已经在 DOM 中(之前已加载),该参数会强制刷新页面。不是你想做的。

您将有更好的运气通过 jQuery 加载内容,插入 DOM $("#myDiv").load("ajax/test.html");,然后使用刷新当前页面$("#myPage").page("destroy").page();注意,如果您只是插入 jQuery Mobile 未增强的 html,则可能不需要最后一点。

于 2012-11-19T17:34:40.070 回答