如何使用 Pagecontainer Widget 将对象发送到另一个不同的页面?

2023-12-29

假设我的项目中或多或少有这些文件:

  • A页.html
  • PageA.js
  • 页面.html
  • PageB.js

我想将页面从 PageS.html 更改为 Page.html。然后,我用了页面容器小部件 https://api.jquerymobile.com/pagecontainer/。这是我在 PageA.js 中更改页面的代码片段:

$(":mobile-pagecontainer").pagecontainer("change", "WorkOrderDetail.aspx", 
{ 
    transition: "slide", 
    objectA: objA 
})

基于此article https://jqmtricks.wordpress.com/2014/01/22/passing-parameters-between-pages-multi-page-model/,在另一边(Page.js),我可以得到objectA via pagebeforechange事件如:

$( document ).on( "pagebeforechange" , function ( event, data ) {
        var stuff = data.options.objectA;
        console.log(JSON.stringify(stuff));
});

不幸的是,当我尝试它时,它甚至没有触发pagebeforechange当我使用 Pagecontainer Widget 将页面从 PageA.html 移动到 Page.html 时,根本没有发生事件。仅当我直接从浏览器刷新 page.html 时,它才会触发该事件。

所以,

  • 是否可以使用 Pagecontainer Widget 在两个不同页面之间传递对象?
  • 如果是的话,我是否错过了任何概念?
  • 如果没有,是否有任何正确的方法来传递它,同时仍然使用 Pagecontainer Widget 的过渡效果?

您提到的文章很旧并且已讨论过多页模型,当您使用单页模型。 MPM 和 SPM 中操作页面所遵循的技术有所不同。

pagecontainer 小部件是在 jQM 1.4 中引入的;它很方便,但需要更多的编码和试错过程。注意pagebeforechange已折旧并替换为pagecontainerbeforechange。此外,该事件触发两次并返回almost相同的数据,如下:

  1. 第一次回归.toPage字符串形式的值
  2. 第二次.toPage是一个对象

鉴于上述情况,您必须根据要检索的数据以及是否要对上一页或下一页进行更改来决定何时运行代码。

在 jQM 的页面之间传输和检索数据的方法有很多。例如,数据可以在 jQM pagecontainer 事件中传递,请求参数 https://stackoverflow.com/a/26393037/1771795、本地存储...等

就您而言,您想通过object更改页面时。

$.mobile.pageContainer.pagecontainer( "change", "pageB.html", { objectA: objA } );

Since pagecontainerbeforechange每次页面更改时都会触发,您必须添加一些条件以防止代码在事件触发时运行。另外,还要确定发出的数据是否是string or an object.

$( document ).on( "pagecontainerbeforechange" , function(e, data) {
  if (typeof data.toPage === "object" &&
    data.options.target === "pageB.html" &&
    data.options.objectA !== "") {

    var objectA = data.options.objectA, /* object passed */
        targetPage = data.toPage;       /* page you navigated to (jQuery object) */

    targetPage.find( ".foo" ).text( "objectA.bar" );

  }
});

一旦您拥有数据对象和导航到的页面对象,就可以进行所需的更改。

Demo http://plnkr.co/edit/1dpn0nAb4NLeB7wZueFJ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Pagecontainer Widget 将对象发送到另一个不同的页面? 的相关文章

  • JQuery UI Draggable - 如何知道元素是否可拖动初始化?

    我的逻辑是 if this draginited a drag disabled element shouldn t get pass here as it is inited this draggable 我搜索了很多 找不到实现这个逻辑
  • jqGrid - 如何将网格设置为最初不加载任何数据?

    如何创建网格但不加载任何数据 如果我省略url选项然后loadError回调被触发 目前我们设置url NoData json其中 NoData json 是一个静态文件 其中没有行 问题出在我们的loadComplete如果网格不包含数据
  • 如何为多个元素添加Class?

    我正在使用这段 javascript 向多个元素添加一个类 我试图引用多个 div 并向它们添加类 它只适用于第一个 JavaScript
  • 未捕获的类型错误:未定义不是函数

    我收到消息Uncaught TypeError Undefined is not a function当我尝试调用家庭控制器中的方法时 也许关于我为什么收到此消息的建议 findIdpActivities function pernr ca
  • 画廊自动播放幻灯片?

    有没有人找到一种简单的方法来让很棒的画廊自动播放 我真的被这个困住了 任何帮助都会很棒 Thx Paul 自动播放 真 在选项中应该可以解决问题 autoplay type Boolean or Number default false 如
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • SetInterval 函数不适用于 PHP 文件

    我有这样的index html
  • 是否可以使materialize.css模态更大并删除垂直滚动条?

    我刚刚创建了按钮 单击后会弹出一个模式 每个按钮都有一个显示不同练习 gif 的模式 然而 模态框太小 导致用户无法看到整个 gif 迫使他们向下滚动 我想删除滚动条并使模态更大 以便用户可以看到整个 gif 任何帮助都会很棒 这是我的代码
  • 调用 jQuery 超大插件 onclick

    我正在尝试调用超大插件 http buildinternet com 2009 02 supersized full screen backgroundslideshow jquery plugin http buildinternet c
  • 是否可以在Chrome中查看jQuery添加的数据

    创建网站时我经常使用 jQuery data 向元素添加数据的函数 是否可以在 Chrome 中查看元素存储的所有数据 因此 当我检查一个元素时 它会在 Chrome 本身中显示数据 如果没有 是否可以编写一个插件来 扩展 到 Chrome
  • jquery数据表跨页行数

    我正在为我的 HTML 表使用 jQuery DataTables 插件 有没有办法跨页获取我的表格中的行数的行数 例如 如果我有70我的表中的行 比方说50其中显示在第一页上 并且20在第二页 有没有办法得到计数70 我已经尝试了这篇文章
  • document.ready 之前的 Jquery UI 界面看起来很难看

    HTML 元素在 onload 或 document ready 被触发之前显示 所有 jQuery UI 小部件都在 document ready 上加载 这使得页面在最初几秒钟看起来很难看 处理它的可能选项 在使用 jQuery UI
  • 纯 JS 相当于 Jquery eq()

    jquery 的纯等价物是什么eq 例如 我怎样才能实现 class1 class2 eq 0 text 1254 在纯 JavaScript 中 要获取数组中的元素索引 可以使用 在 JavaScript 中 因此 要重现您的代码 您可以
  • JQGrid 列自定义..在运行时添加列

    我是 J Query 的新手 正在尝试一些示例http www trirand com blog jqgrid jqgrid html http www trirand com blog jqgrid jqgrid html我看到列名是用
  • iPhone 和 iPad 滚动结束

    我正在制作一些无限滚动的 jQuery 跨浏览器画廊 我工作得很好 但在 iPhone 上 我想也在 iPad 上 而不是相等的值 我有一些不成比例的值不匹配 window scrollTop document height window
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 如何绕过Access-Control-Allow-Origin?

    我正在一个平台上对我自己的服务器进行ajax调用 他们设置了阻止这些ajax调用的平台 但我需要它从我的服务器获取数据以显示从我的服务器数据库检索到的数据 我的 ajax 脚本正在运行 它可以将数据发送到我的服务器的 php 脚本以允许其处
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的
  • 表单 CSS:根据选中/未选中状态设置单选框的父级(标签)样式

    所以我有一个表格 表格中提出的大多数问题都是使用无线电输入 我要和
  • 如何检查用户电子邮件的唯一性并将结果传递给 jQuery?

    我有这个问题 我正在控制器中检查用户电子邮件并发送 json 成功响应 如果已获取 并添加输入的 css 样式 我还需要阻止提交并添加一些消息 这是我的检查电子邮件操作 使用本文 http paydrotalks com posts 45

随机推荐