jQuery Mobileの基礎/ページでページ遷移の方法を説明しましたが、jQueryMobileではモーダルダイアログとしてリンク先のページを表示させることも可能です。
モーダルダイアログは、一度開いたダイアログボックスを閉じるまでは、他の操作をできなくするタイプのダイアログボックスです。
ユーザーにログイン操作をしてもらう際に、ユーザー名とパスワードをモーダルダイアログで表示するなどの利用方法が考えられます。
それでは続きで説明します。
モーダルダイアログを表示する
モーダルダイアログで表示されるページはダイアログだからといって特別なことはなく、通常のページです。aタグでリンクを指定する際に data-rel=”dialog”属性を設定することで、リンク先のページがモーダルダイアログで表示されます。
リンク先のページは別のHTMLファイルでも良いですし、同じHTMLファイル内にある別のページでも問題ありません。
■jQueryMobileDialog1.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" /> <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script> </head> <body> <div data-role="page" id="top"> <!-- ヘッダー --> <div data-role="header"> <h1>ヘッター</h1> </div> <!-- コンテンツ --> <div data-role="content"> <a href="#dialog" data-rel="dialog" data-transition="pop">Open dialog</a> </div> <!-- フッター --> <div data-role="footer"> <h1>フッター</h1> </div> </div> <div data-role="page" id="dialog"> <div data-role="header" > <h1>Dialog</h1> </div> <div data-role="content"> <p>モーダルで開くダイアログだよ</p> </div> </div> </body> </html>
1ページ目のOpenDialogと書かれたdata-rel=”dialog”属性を指定したリンクをタッチ(クリック)するとダイアログが開きます。左上には×の形をした閉じるボタンが自動で付いています。
これをタッチ(クリック)するとダイアログが閉じます=前のページに戻ります。
閉じるボタン以外でダイアログを閉じる
左上の閉じるボタン以外でもダイアログを閉じることができます。
ダイアログとして表示されていますが実態はページなので、ページの場合と同様にaタグでdata-rel=”back”属性を指定することでダイアログを閉じて前のページに遷移します。
注意点としてはページの場合と同様にdata-rel=”back”属性を付けると前のページに戻る動作になるので、リンク先は存在しないページを指定しても問題ありませんが、jQueryMobileに対応していなブラウザで正しく動作させるためにも存在するページを指定すべきです。
jQueryMobileDialog1.htmlにダイアログを閉じるリンクを作成してみましょう。閉じるためのリンク以外は同様なので一部省略しています。
■jQueryMobileDialog2.html<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" /> <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script> </head> <body> <div data-role="page" id="top"> 〜省略〜 </div> <div data-role="page" id="dialog"> <div data-role="header" > <h1>Dialog</h1> </div> <div data-role="content"> <p>モーダルで開くダイアログだよ</p> <p><a href="#top" data-rel="back">ダイアログ閉じるよ</a></p> </div> </div> </body> </html>以上、jQueryMobileでモーダルダイアログを利用する方法の説明でした。おつかれさまでした。