为什么jQuery Mobile对话框关闭按钮有时会让我回到我的主页面?

时间:2012-09-30 14:46:40

标签: jquery jquery-mobile

我有一个带有两个主页面(一个登录页面和一个地图页面)的应用程序,它在一个链式对话框结构中产生动态页面作为对话框,其中大多数都有子页面。

一个完全正常的行动方案是:

登录 - >地图 - >对话 - >子对话框

最初,我使用界面上的按钮从Map移动到Dialog:

<a href="#dialogID" data-icon="arrow-r" data-iconpos="right" data-rel="dialog" data-role="button" data-theme="b" class="ui-btn-right">Info</a>

使用该系统,我可以使用对话框上的关闭按钮或浏览器上的后退按钮,从登录到Sub-Dialog并再次返回。地址栏更新如下:

Login Page: http://serverName/
Maps Page: http://serverName/#page-map
Dialog: http://serverName/#page-map&ui-state=dialog
Sub-Dialog: http://serverName/#page-map&ui-state=dialog&ui-state=dialog

这是完全正常的行为,只要我按照data-rel =“对话框”链接就可以正常工作。

但我想改变网站的行为,这样当您点击Google地图标记对象时,它会直接打开对话框。我这样做有以下几点:

$.mobile.changePage($("#dialogID"), { role: "dialog" });

当我这样做时,导航回或按下子对话框上的关闭按钮会让我回到查看登录页面。但是,URL是Dialog状态的URL。所以URL是正确的,但我在屏幕上看到的是错误的。

因此,我现在不再使用ABCD-&gt; DCBA,而是在ABCD-&gt; DA中跳过这两个页面。

这是jQueryMobile中的错误吗?或者我使用changePage错了吗?

编辑:这是一个展示行为的深入的JSFiddle:http:// jsfiddle.net/LxFJq/14/由于动态页面似乎出现了。当它们是静态页面时(http:// jsfiddle.net/hgb7s/2/)它都像预期的那样工作。动态页面会破坏导航,但仅限于从事件处理程序单击的边缘情况。至少我把它缩小了。

已解决:我自己解决了这个问题。

&lt; a data-rel =“对话框”&gt; tag会自动将data-url属性添加到新页面。 changePage()函数不会。所以我自己添加了它们,一切正常。工作结果,数据相关属性位于http://jsfiddle.net/LxFJq/15/

根据前两条评论发现此信息:https://gist.github.com/1037934

1 个答案:

答案 0 :(得分:4)

我自己解决了这个问题。

&lt; a data-rel =“对话框”&gt;将自动将data-url属性添加到新页面。 changePage()函数不会。所以我自己添加了它们,一切正常。 http://jsfiddle.net/LxFJq/15/

的工作结果

根据前两条评论发现此信息:https://gist.github.com/1037934

我已将此作为错误提交给jQueryMobile的GitHub仓库。 (现在我必须等两天才能接受我自己的答案。)

相关问题