在 jQuery Mobile 中将参数传递给 page-id

2024-05-13

我正在尝试将一些参数传递给 jQuery Mobile 中创建的页面 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")
      });
    }
  }
});

但它只是把我带到了#pronosticopage-id,哈希中没有参数。结果,我得到的页面没有应显示的信息。

提前致谢。


是的,默认情况下不支持哈希上的参数。我一直在使用以下插件来实现这一点,到目前为止它运行得很好;-)

jqm.page.params https://github.com/jblas/jquery-mobile-plugins/blob/master/page-params/jqm.page.params.js

更新 - 如何使用:

我在包含 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 现在可以在我喜欢的任何页面事件中访问此信息:

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

会将“mysearchkeyword”打印到您的日志控制台。

希望这可以帮助!

PS:请注意,我与该插件或其作者没有任何关系

编者注:作者将此作为第二个代码块。在 Jquery 1.9 中,live 被删除了,所以我用 .on 语法更新了上面的示例。这是原文:

$("#firstpage").live("pagebeforeshow", function(e, data){
    if ($.mobile.pageData && $.mobile.pageData.id){
        console.log("Parameter id=" + $.mobile.pageData.id);
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 jQuery Mobile 中将参数传递给 page-id 的相关文章

随机推荐