javascript – jQuery Mobile navigate – 为什么状态为空?

我正在使用$.mobile.navigate(“#test-page”,{id:123})导航到辅助页面.

页面页面的导航工作正常….但状态是空的!

文档清楚地表明,状态应包含执行导航时所需的所有信息.

这是我正在使用的代码

$(window).on('navigate',function(event,data) {
  console.log("navigated",data);
  console.log(data.state.info);
  console.log(data.state.direction);
  console.log(data.state.url);
  console.log(data.state.hash);
  if (data.state.hash === "test-page") {
    console.log("Test page",data.state.id);
  }
});

不幸的是,数据传递为空:

{
    state:{}
}

HTML如下:

希望有人可以提供帮助.谢谢!

最佳答案
$.mobile.navigate和导航事件用于跟踪URL历史记录并从URL传递/获取数据.它们使用浏览器的导航(后退/前进).

要使用内部导航在webapp中动态传递页面之间的数据,请使用$.mobile.changePage.

资源:

> $.mobile.navigate()
> Navigate
> $.mobile.changePage()

使用以下代码将数据从页面传递到另一个.

$.mobile.changePage('store.html',{
 dataUrl: "store.html?id=123",data: {
    'id': '123'
 },reloadPage: true // force page to reload
});

检索数据

$('.selector').on('pagebeforeshow',function () {
 var values = $(this).data("url").split("?")[1];
 id = values.replace("id=","");
 console.log(id);
});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...