1

我有两个页面,p1.htmlp2.html使用 jQuery Mobile。

中有一些链接p1.html,所有链接都在导航到,p2.html但略有不同。

我想将int参数传递给p2.htmljavascript(例如,链接号),因此 javascript 代码中的 javascript 代码p2.html根据int参数对自身进行少量更改(在转换开始之前)。

我想使用 jQuery Mobile 的 Ajax 导航功能和转换,并且我不想使用页面锚点 ( p2.html#6)。

如何将该参数发送到p2.html

4

3 回答 3

2

可以使用cookies来保存相关信息吗?

获取cookie jquery 插件

p1.html

<a href="p2.html" data-p2data="1">Link 1</a>
<a href="p2.html" data-p2data="2">Link 2</a>
<script type="text/javascript">
$(document).ready(function(){
    $('a[data-p2data]').click(function(){
        $.cookie('p2data', $(this).data('p2data'));
    }
}
</script>

p2.html

<script type="text/javascript">
    var p2data = $.cookie('p2data');
    // .. process the page based on the value in p2data.
</script>
于 2012-09-05T21:48:48.907 回答
1

文档中,没有内置的方法可以在页面之间传递参数。

但是,您可以使用其中提到的插件之一(page-paramsjquery-mobile-router),也可以使用 localStorage 或 cookie。

看看其中一些 SO 问题

使用 jQuery Mobile 在页面之间传递数据?

将参数传递给 jQuery Mobile 中的页面 ID

如何在 jQM 页面之间存储变量?

于 2012-09-05T21:47:21.650 回答
1

当点击 page1.html 上的链接时,您可以使用全局变量来存储该数值:

$('a.special_link').click(function() {window.my_id = this.id});

...然后您将能够在 page2.html 中检索它,因为 JQM 默认使用 AJAXed 导航,因此仍然可以访问此变量的单个页面:

$('document').on('pagebeforechange', function(toPage, data) {
    if (toPage == 'page2.html') {
        alert('you have clicked on link number: ' + window.my_id);
    }
});
于 2012-09-05T21:47:30.050 回答