将参数传递给jQueryMobile中的页id

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (74)

我试图将一些参数传递给jQueryMobile中的页面ID。

该站点由带有链接的列表视图组成,其中每个视图都有编码的散列,如下所示:

<li><a href="#pronostico?region=12&ciudad=0">Puerto Natales</a></li>

我已经绑定了pagebeforechange若要捕获URL中的散列,请执行参数检测,并根据传递的参数数量采取行动。

现在,用cookies,我一直在尝试这个:

$(document).one("pageinit", function(event, data) {
  if (location.hash.search(/^(#ciudades|#pronostico)/) === -1) {
    if ($.cookie("recordar")) {
      $.mobile.changePage($("#pronostico"), {
        data: "region=" + $.cookie("region") + "&ciudad=" + $.cookie("ciudad")
      });
    }
  }
});

但它只是传递给我的#pronostico页面id,散列中没有参数。因此,我没有得到它应该显示的信息的页面。

提问于
用户回答回答于

是的,默认情况下不支持散列上的参数。我一直在使用下面的插件

jqm.page.params

更新 - 如何使用:

包含jqm.page.params.js后,我添加了下面的代码:

$(document).bind("pagebeforechange", function( event, data ) {
    $.mobile.pageData = (data && data.options && data.options.pageData)
        ? data.options.pageData
        : null;
});

例如,一个页面被调用如下:index.html#search?id = mysearchkeyword现在可以在ANY页面事件中访问这些信息我感觉像:

$(document).on("pagebeforeshow", "#firstpage", function(e, data){ 
        if ($.mobile.pageData && $.mobile.pageData.id){
            console.log("Parameter id=" + $.mobile.pageData.id);
        }
 });

将“mysearchkeyword”输出到你的日志控制台。

编者注:作者将此作为第二个代码块。在jquery 1.9中,live被移除了,所以我用.on语法替换了上面的示例。原文如下:

$("#firstpage").live("pagebeforeshow", function(e, data){
    if ($.mobile.pageData && $.mobile.pageData.id){
        console.log("Parameter id=" + $.mobile.pageData.id);
    }
});
用户回答回答于

这个插件不支持书签。如果你添加了一个页面处理程序,你可以通过在jqm完成之后将params返回到url来修复这个问题:

// list of inner pages where you want to support params AND bookmarking
// maybe better to use a CSS class name to mark them
var $paramPages;
$(document).ready(function() {
    $paramPages = $('#book, #order');
});

// put the params back into the location once jQM is done
//
$( document ).bind( "pagechange", function( e, data ) {
    if (data.toPage.is($paramPages) && data.absUrl) {
        window.location.replace(data.absUrl);
    }
});

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券