对话框和后退按钮之间可能存在冲突

时间:2012-10-25 15:39:05

标签: button jquery-mobile jquery-ui-dialog

我在JQM上找到了一个奇怪的行为。

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

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

(Windows sequence between click)

以下是相关代码的摘录:

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

我不明白为什么最后点击列表按钮(jquery移动后退按钮)需要2次点击才能真正对链接进行操作。事实上,奇怪的行为是第一次点击突出显示蓝色按钮,但它保持原样,而不会切换到上一页,直到第二次点击发生。

任何帮助将不胜感激。

问候。

2 个答案:

答案 0 :(得分:2)

可以通过在弹出窗口中添加data-rel="back"来修复此问题。

由于此原因,issue posted on Github已被标记为已解决。

  

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

     

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

     

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

     

关闭已解决。

答案 1 :(得分:1)

你描述的错误包括两部分;

  1. 为什么需要两次点击才能恢复?
  2. 为什么按钮保持活动状态(蓝色)?
  3. 错误的第一部分不是错误;你打开一个弹出窗口,但不是回去(例如data-rel='back'你打开一个与前一个页面相同的页面。所以如果你按下后退按钮,它会重新打开上一个页面,它实际上是同一个页面。你现在就在(如果有意义的话)。

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

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