0

我正在使用 jQuery Mobile 为 BlackBerry PlayBook 制作应用程序,并且在一个页面(实际上是一个divwith data-role='page')中,我有很多(比如 125 个)按钮,每个按钮都有一个独特的文本。我已经为此使用了a标签data-role='page'

有一个与上面类似的单独页面,但在同一个 HTML 文件中有不同的内容。此页面中的内容取决于页面 1 中单击的按钮。

所以我的问题是,如何根据第 1 页中单击的按钮加载第 2 页以及相关内容?我需要将中间的文本<a></a>标签传递到第 2 页并相应地加载内容。

非常感谢任何帮助。

4

3 回答 3

2

例如,您可以使用 url 本身使用查询字符串传递数据,然后在被调用页面的 pageshow 事件中检查并显示适当的内容。

按钮标记

<a href="#page2?btn=Hello">Button 1</a>

在调用它之前的一段时间绑定到 pageShow(它实际上不需要在文档中准备好,因为它已被委派,但假设这是您启动应用程序的地方,您可以将其放置在那里)。

$(function() {
     $(document).delegate('#page2', 'pageshow', function (event, ui) {
                var qryStringResult = getParameterByName('btn'); //hello                     
        });  
});

Artem Barger 的功能 - https://stackoverflow.com/a/901144/384985

 function getParameterByName(name) 
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
于 2012-05-22T13:37:22.953 回答
1

好吧,您可能有一个与每个按钮相关联的唯一值,然后单击在每个按钮上触发相同的功能,在该功能中根据页面直接检查值。否则您可以使用 html5 的 localStorage/sessionStorage 来存储页面之间传递的值。欲了解更多详情,请访问此处

于 2012-05-22T13:28:14.550 回答
0

您可以为此使用全局变量。

<a href="#" onclikc="some_function('Button 1')">Button 1</a>

function some_function(data){



global_varible = data;

}

在第 2 页

$( document ).delegate("#page2", "pagecreate", function() { 
       var page2_varible = global_varible;
}
于 2012-05-23T08:20:52.467 回答