在对话框返回错误页面关闭按钮(Close button on dialog returns to t

2019-10-17 11:17发布

这里是一个非常简单的小提琴:

http://jsfiddle.net/mmSKj/

如果您单击标题栏中的“预设”按钮,它会打开一个对话框。 如果您单击对话框中的“关闭”按钮,而不是回到它来自的页面,它会到最后一页(不包括对话框本身)的页面(一个与内容上This is another page )。 怎么会? 有没有办法解决自动插入的后退按钮所以它的行为本身正确(如“家”按钮,我包括在对话),或做不到这一点,是有办法去掉关闭按钮。

<div data-role="page" id="index">
    <header data-role="header">
    <h1>Index</h1>
    <a href="#presets" data-icon="star" class="ui-btn-right" data-transition="pop" data-rel="dialog">Presets</a>
    </header>
    <article data-role="content">
        <div>This is the main page</div>
    </article>
</div>
<div data-role="page">
    This is another page
</div>
<div data-role="page" id="presets">
    <header data-role="header">
        <h1>Presets</h1>
        <a href="#index" data-icon="home" data-iconpos="notext"></a>
    </header>
    <div data-role="content">
        This is a dialog!
    </div>
</div>

更新

作为TAIFUN指出,问题是缺乏一个页面上的ID的。 添加一个id修复我的第一小提琴。 然而,我的实际情况是更复杂一点,如本小提琴:

http://jsfiddle.net/mmSKj/2/

在这里,我实际上是在制造使用动态网页的淘汰赛,我分配ID来通过数据绑定的网页,但是,现在看来,这些ID没有被jQuery Mobile的出于某种原因认可。 如果你使用Firebug看,你可以看到,IDS是正确添加到页面的属性,但是当你关闭对话框,你结束了3页,而不是原来的页面上。

更新2

简单的修复,我只是增加了一个虚拟ID为HTML敲除会作为模板来使用的位:

<!-- ko foreach: pages -->
<div data-role="page" data-bind="attr: {id: name}" id="dummy">
    This is <span data-bind="text:name"></span>
</div>
<!-- /ko -->

见这里 。

该虚拟ID被击倒更换,所以链接到页面正常工作和jQuery移动似乎是幸福的!

Answer 1:

添加一个id到其他页面

<div data-role="page" id="anotherpage">
    This is another page
</div>

然后它会工作,看到的jsfiddle



Answer 2:

回来到另一种解决方案,因为你提到的: 有没有办法消除的关闭按钮? 是的,只需添加这种风格,也看到这个答案 ...

 <style>
   .ui-dialog .ui-header a[data-icon=delete] {
     display: none;
   }
 </style>

而另一个的jsfiddle证明



文章来源: Close button on dialog returns to the wrong page