cordova&jquery:发送到另一个静态html页面的值

sco*_*ozj 1 jquery ios jquery-mobile cordova

我正在使用Cordova和做一个ios web应用程序JQuery.我创建了index.html,它有一个3行列表视图.单击该行时,该页面将更改为另一个page.html.根据单击的行,JS将从服务器请求数据并刷新page.html.现在我的问题是实施它的最佳实践是什么?我的意思是这是常规风格,因为我对前端很新鲜.目前我在index.html中添加了锚点:

<li><a href="page.html">A Header Bars</a></li>
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了问题:

  1. 我不知道如何在page.html中获取点击的行信息
  2. 在page.html中,我如何开始获取数据的请求?在page.html中,我写道:

    $(document).ready(function()
    {
        console.log("test");
        document.write("page test");
    })
    
    Run Code Online (Sandbox Code Playgroud)

但它没有被称为.

谢谢.

Gaj*_*res 6

如果你想要从一个页面到另一个页面的值,你有几个选项(相同的规则适用于具有多个页面的单个jQM html和围绕多个html文件构建的jQM项目):

I.在第二页上使用pagebeforeshow并通过数据对象检索所有需要的数据.假设你有2个html文件,第一个html有一个id"page1",第二个有一个id"page2",例如:

$('#page2').live('pagebeforeshow', function (e, data) {
    alert(data.prevPage.find('div[data-role="content"]').attr('id'));
});
Run Code Online (Sandbox Code Playgroud)

II.第二个选项是创建一个将用作数据存储的共享对象:

var storeObject = {
    someValue : '1',
    anotherValue : '2'
}
Run Code Online (Sandbox Code Playgroud)

这是一个最简单的解决方案,但只有在ajax页面加载处于活动状态时才能使用.

III.您可以使用changePage传递值:

$.mobile.changePage('page2.html', { dataUrl : "page2.html?paremeter=123", data : { 'paremeter' : '123' }, reloadPage : true, changeHash : true });
Run Code Online (Sandbox Code Playgroud)

并按如下方式阅读:

$('#page2').live('pagebeforeshow', function (e, data) {
    var paremeter = $(this).data("url").split("?")[1];;
    paremeter = paremeter.replace("paremeter=","");   
    alert(paremeter);
});
Run Code Online (Sandbox Code Playgroud)

更多信息

如果您想了解有关此主题的更多信息,请查看本文.您将找到几个带有示例的解决方案.