【问题标题】:jQuery Mobile: should I use pageBeforeShow or pageBeforeChange for last adjustments?jQuery Mobile:我应该使用 pageBeforeShow 还是 pageBeforeChange 进行最后调整?
【发布时间】: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


    【解决方案1】:

    我不确定pagebeforechange 是否是执行此操作的最佳地点。我不认为pagebeforechange 是一个页面级别的事件,而更多的是一个站点级别的事件。我主要在想接管导航或构建动态页面时使用它。

    当我想将事件处理程序附加到页面时,我使用pageinit。当我想在页面显示之前更改其内容或外观时,我使用pagebeforeshow

    希望这会有所帮助。

    【讨论】:

    • 感谢基里曼。它确实证实了我需要一个很好的理由来放弃 pagebeforeshow 并切换到 pagechange。我很想知道是否有人尝试过 pagebeforechange 并遇到了麻烦。或者有明确的航行:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多