【问题标题】:jquery mobile create page via jsonpjquery mobile通过jsonp创建页面
【发布时间】:2013-09-22 09:37:27
【问题描述】:

所以我有我正在开发的 jQueryMobile 应用程序,我想要做的是当用户单击一个链接时,我希望它从 mysites api 获取 JSONP 数据,然后 jsonp 调用成功,在当前的移动应用程序页面现在当初始页面加载时我可以调用 jsonp 并填充页面但是当我单击一个链接时我收到错误消息说“错误加载页面”所以我如何将它设置为当用户单击它触发的链接时将创建内容以供 jquery mobile 显示的 jsonp 调用?

编辑

试图更好地解释

我有一个初始页面设置

html

<div data-role="page" class='maninpage' id="page1">
    <div data-role="header" data-scroll="x">
        <div>
            <a href="#"><img src="img/iphoneheader.gif" alt="Penn State Live"></a>
        </div>
        <div data-role="navbar">
            <ul>
                <li>
                    <a href="colleges">Colleges</a>
                </li>
                <li>
                    <a href="campuswires">Campuses</a>
                </li>
                <li>
                    <a href="facultystaff">Faculty and Staff</a>
                </li>
                <li>
                    <a href="ofinterest">Of Interest</a>
                </li>
                <li>
                    <a href="photos">Photos</a>
                </li>
                <li>
                    <a href="videos">Video</a>
                </li>
                <li>
                    <a href="subscriptions">Newswire Subscription</a>
                </li>
                <li>
                    <a href="psutxt">PSUTXT</a>
                </li>
            </ul>
        </div>
    </div>
    <div id="content" data-role="content"></div>
    <div data-role="footer"></div><!-- /footer -->
</div><!-- /page -->

然后在启动时我调用这个函数给启动参数

get_jsonp(data)

function get_jsonp(data){
$.ajax({
    dataType: 'jsonp',
    data:data,
    jsonpCallback:'create_content',
    async:false,
    url:'myapi'
 });
}

在我的 create_content 回调中,它创建一个 html 列表,然后我用它来填充 ul

喜欢这个

$('#content').empty().append(content);
$("div#content ul").listview();

因此,当有人单击链接时,我希望它使用从链接中提取的新参数重复该过程,将它们发送到新的可跟踪页面,但使用 ajax 填充。

也就是说我需要让我的回调建立一个全新的页面,如果这是我必须做的,那很好,但谁知道也许我做错了,但我认为会有一些方法在不返回 html 的情况下向 jquery mobile 提供内容?

【问题讨论】:

  • 您是否尝试通过 ajax 刷新列表?
  • 差不多,但需要跟踪它们的来源并拥有良好的干净 url,只要我可以在我的页面中构建页面,我也会发现更改整个页面 ajax ajax 回调,因为 jsop 不响应 html

标签: navigation jsonp jquery-mobile


【解决方案1】:

这是您正在寻找的documentation,因为您想使用changePage()

例子:

$("[name=button_name]").click(function() { 
    $.mobile.changePage('anotherPage.php?parm=123','slide',false,true);
});

所以如果用户点击按钮 (button_name) 它将调用 'anotherPage.php?parm=123' 页面,(slide) 是过渡类型,(false) 是反向过渡类型,(true) 是如果你想跟踪页面

已更新(来自您的 cmets)

不确定,但你可以试试这个

$.mobile.changePage({
    // this posts to the page anotherPage.php, 
    // you could capture these parms and do some action
    url: 'anotherPage.php?parm=123&another=foobar', 
    type: 'post', 
    // this posts the data from the form to the 
    // same page as above, this could do other actions
    data: $('form#your_form').serialize() 
},'slide',false,false);

我会治疗的

  • url:作为请求页面(显示什么)

  • data:作为你需要的提交数据。

希望对你有帮助

【讨论】:

  • 您是要导航到页面还是更改内容?如果导航代码看起来不错,但如果重新加载/刷新内容,您可以在 ajax 调用中使用 .html() 并使用 .page() 刷新
  • 我真的在尝试做这两种事情发生的事情是我的 api 返回 json 对象而不是 html,所以我的返回函数创建了所需的 html,所以当一个人点击一个链接时,它会调用 json 来创建内容并更新url,以便他们可以后退或前进
  • 不,我认为我的解释不正确......我会尝试再次更新帖子
猜你喜欢
  • 2011-08-28
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 2012-04-06
  • 1970-01-01
  • 2011-06-30
相关资源
最近更新 更多