1

firstページ ABC で、jQueryMobileダイアログをポップアップ表示します。

このダイアログには、2 番目のダイアログを呼び出すボタンがあります。

<a href="/second" data-role="button" data-rel="dialog">Second dialog</a>

このボタンをクリックすると、次の結果が得られます。

  • firstダイアログが閉じられます
  • secondダイアログがポップアップします
  • ダイアログを閉じるsecondと、ページ ABC が残ります

ただし、何が起こるかは次のとおりです。

  • secondダイアログがポップアップします
  • secondダイアログを閉じると、firstダイアログが残ります
  • ここで、ダイアログを閉じfirstてページ ABC を残す必要があります

jQueryMobile のドキュメントによると、ダイアログ内でリンクがクリックされると、ダイアログが通常のページであるかのように、フレームワークが自動的にダイアログを閉じ、要求されたページに遷移します。

ダイアログを閉じるときに、secondダイアログからダイアログを呼び出すにはどうすればよいですか?firstfirst

4

3 に答える 3

0
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
<script>
        $(function () {
            $( "#link2" ).on( "click", function( event, ui ) {
                $("dialog1").dialog('close');
            }
        });
</script>

</head>
<body>
   <div data-role="page" id="example">
          <div data-role="header">
            <h1>test</h1>
          </div>
          <div data-role="content">
            <a href="#dialog1" data-rel="dialog" id="link1">Open dialog1</a> 
        </div>
    </div>
    <div data-role="page" id="dialog1">
          <div data-role="header">
            <h1>dialog1</h1>
          </div>
          <div data-role="content">
            <a href="#dialog2" data-rel="dialog" id="link2">Open dialog2</a> 
        </div>
    </div>
    <div data-role="page" id="dialog2">
        <div data-role="header">
            <h1>dialog2</h1>
        </div>
        <div data-role="content">
        </div>
    </div>
</body>

コードを試してください。そして、これがうまくいったかどうか教えてください。

于 2012-09-05T07:50:22.540 に答える
0

2 番目のポップアップを開くときの間隔を短く設定します。

$('#Popup1').dialog('close');

setTimeout(function () {
    $.mobile.changePage('#Popup2', {
        'role': 'dialog'
    });
}, 1000);
于 2013-09-20T16:42:28.270 に答える
0

ここでの主な問題は、「開く」ダイアログと「閉じる」ダイアログが誤称であることです。実際にそれらを「開く」または「閉じる」のではなく、ブラウザーの履歴を使用して機能する「移動する」または「移動する」-ダイアログをページとして履歴に追加するか、削除します(戻る")。最初のダイアログから別のダイアログに移動すると、2 番目のダイアログがブラウザーの履歴にプッシュされますが、最初のダイアログは閉じるアニメーションでアニメーション化されます。

それについて理解すれば、解決策を見つけるのは非常に簡単になり、使用できるオプションがいくつかあります。

  1. ダイアログを開くときに changeHash を無効にすると、それらが履歴に追加されなくなります。そのため、2 つ目のダイアログを開いて、閉じるときに、明示的にホームページに戻ることができます。
  2. リンクを変更して、最初のダイアログ (履歴を「戻る」ことで jQuery モバイルが処理する) を最初に「閉じ」、次に 2 番目のダイアログ (新しいページに移動) を「開く」ように変更します。これは、jQM がそのようにアニメーション化するため、現在得られていると思われる効果ですが、ボンネットの下で別のことを行っています。
于 2013-09-20T17:07:15.547 に答える