1

我正在尝试以相当快的速度将一个相当简单的应用程序组合在一起,而且我是 jQuery Mobile 的新手,所以我面临着一个需要一些输入的设计决策。

我的一些页面使用表单通过 GET 将数据传递到下一页。现在我正在使用 jQuery Mobile 修改应用程序,我发现我需要对每个应用程序应用 'data-ajax="false"' 以便以老式方式将数据传递到页面。这会阻止通过 ajax 加载下一页。

我对此很满意,但我知道另一种选择——完全修改我目前的模型以适应 jQuery Mobile 的 ajax 系统。我不愿意这样做,因为这需要我更多的时间来弄清楚并且我需要更多的时间来重新实施。

所以问题是这样的:使用 jQuery Mobile 的数据传递系统重写我的应用程序以作为单个 DOM 运行,通过 ajax 加载许多页面有什么优势?我为什么要关心或打扰?

(你能说我几乎不了解他们的表单系统是如何工作的吗?)

4

1 回答 1

3

“JQM 方式”的一个优点是您永远不会离开第一页。

可以这样想:您加载的第一个页面将是您的“锚页面”,所有其他页面都将被添加到/删除。只有当您转到 data-rel="external" 或 data-ajax="false" 的链接时,加载的新页面才会成为您的下一个锚点。

JQM 需要这样做以启用转换(基本上它是将新页面加载到现有 DOM 中,将其放到当前页面的“下一个”,然后将其滑过)。如果你去一个完全没有 AJAX 的新页面,就没有动画。

对于您的示例,这可能意味着不需要从一个页面到另一个页面传递数据,因为您在 JQM 中从一个页面到另一个页面时,......您永远不会真正离开第一页。

我通常将一个对象附加到 $('html') 或 $(document),其中包含我在后续页面上需要的任何内容。

您甚至不需要提交任何东西,只需绑定到JQM 事件,例如

  pagebeforehide

这将在您离开某个页面之前被触发。在函数处理程序中,用表单值填充您的对象,并在提交前的最后一个表单页面上,只需使用先前页面中存储的表单值填充隐藏的输入

 pagebeforeshow

希望有帮助。

于 2012-05-21T07:57:21.520 回答