0

我在 JQM 上确定了一个奇怪的行为。

由于该页面基于 JQM Boiler 板,因此此处不包括完整页面。我在jsfiddle上发布了代码。

以下是行为点击操作的摘要:

(点击之间的 Windows 序列)

以下是相关代码的摘录:

<div id="oneapart" 
    data-add-back-btn="true" 
    data-back-btn-text="List" 
    data-role="page" 
    data-title="Home page">

我不明白为什么最后一次单击列表按钮(一个 jquery 移动后退按钮)需要单击 2 次才能实际作用于链接。事实上,奇怪的行为是第一次单击以蓝色突出显示按钮,但在第二次单击发生之前,它保持原样而不切换到上一页。

任何帮助将不胜感激。

问候。

4

2 回答 2

2

data-rel="back"可以通过在弹出窗口中添加按钮来解决此问题。

因此,在 Github 上发布的问题已被标记为已解决。

问题的发生是因为data-rel="back"@jerone 他的小提琴中的大取消按钮的链接中缺少。请参阅此处的“关闭对话框”:http: //jquerymobile.com/test/docs/pages/dialog/index.html

pageTwo 上的后退按钮是动态创建的。当您不使用data-rel="back"将您从 dialogThree(也是一个页面)返回到 pageTwo 的链接时,它会向历史堆栈添加一个项目。这就是为什么 pageTwo 上的后退按钮需要单击两次才能真正将您带回 pageOne。活动状态从 pagehide 事件上的(后退)按钮中移除。在第一次单击时,您会停留在同一页面上,因此不会触发此事件并且按钮保持活动状态。

我添加了data-rel="back",然后一切都按预期工作:http: //jsfiddle.net/jEesE/6/

解决后关闭。

于 2012-10-30T14:46:50.470 回答
1

您描述的错误由两部分组成;

  1. 为什么需要两次点击才能恢复?
  2. 为什么保持按钮处于活动状态(蓝色)?

错误的第一部分不是错误;您打开一个弹出窗口,但没有返回(例如data-rel='back',您打开一个与前一个相同的页面。因此,如果您按下后退按钮,它会重新打开实际上与您现在所在的页面相同的前一个页面(如果有意义的话)。

为什么按钮保持活动状态,我不知道...

编辑:我清理了你的代码:http: //jsfiddle.net/jerone/jEesE/3/

于 2012-10-25T21:40:30.930 回答