【发布时间】:2012-03-20 14:21:49
【问题描述】:
我正在使用 jQueryMobile 和 PhoneGap 开发移动应用程序。通常,由于 jQM 的性质或者因为它是关于加载数据的,页面在显示之前需要进行一些最后的调整。例如,表单字段需要填写动态检索的数据,或者需要为列表项的内容赋予稍微不同的样式以便更好地适应。
我目前正在使用 pageBeforeShow 事件处理程序进行所有这些调整。但我想知道我是否不应该使用 pageBeforeChange 事件处理程序。 jQM 文档并没有真正说明这两个事件如何相互关联,即首先触发哪个事件。
我所知道的 我确实知道以下内容
- pageBeforeShow 和 pageShow 在所有 jQM 的标记(例如,使列表项看起来漂亮)被应用后触发。
- pageBeforeShow 和 pageShow 绑定到特定页面,而 pageChange 在页面发生更改时调用(因此,如果您想在用户到达之前对某一页面进行特定更改,则需要测试 event.toPage 属性)
我为什么要问 这就是为什么我想知道 page(Before)Change 是否是更好的候选者的背景。
jQuery Mobile 页面转换在许多设备上都很尴尬。 Android 设备上的大问题是页面更改是跳跃的:无论转换类型(淡入淡出、弹出等)如何,用户离开的页面都会在新页面或多或少完成后短暂弹回视图。浏览器。 根据我的经验,这主要发生在其他动画正在运行或在页面转换发生时启动时。基本上,Android 浏览器似乎不想对实际上不在视图中的元素应用过渡,因此它会在 jQM 页面之间来回翻转。 我已经开发了一种解决方法,我将页面的任何标记和表单调整延迟大约 1000 毫秒,这可以防止闪烁,但确实意味着用户可能会在页面进入视图后看到这些调整发生在屏幕上。
这个分析让我认为 pageBeforeChange 可能更适合附加任何标记和表单调整。但这将是对代码的一次重大改写,而且我不知道我会遇到什么不可预见的事情。有人对这些活动有任何经验吗?
【问题讨论】:
标签: android jquery-mobile show transitions