1

これが非常に単純なフィドルです。

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は何らかの理由でjQueryMobileによって認識されないようです。Firebugを見ると、IDがページの属性に正しく追加されていることがわかりますが、ダイアログを閉じると、元のページではなく3ページになります。

アップデート2

簡単な修正です。ノックアウトがテンプレートとして使用するHTMLのビットにダミーIDを追加しました。

<!-- 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はノックアウトに置き換えられているため、そのページへのリンクは正しく機能し、jQuerymobileは満足しているようです。

4

2 に答える 2

1

id他のページに追加する

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

その後、それは動作します、jsfiddleを参照してください

于 2012-12-10T20:46:41.113 に答える
1

あなたが言ったので、別の解決策に戻ってきます:閉じるボタンを削除する方法はありますか?はい、このスタイルを追加するだけです。この回答も参照してください...

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

そしてそれを実証するための別のjsfiddle

于 2012-12-10T21:21:44.010 に答える