KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > [jQuery Mobile]ダイアログ

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

HTMLに直接記述する場合

hrefをファイルにすれば外のページもダイアログとして表示できる。

HTML
  1.  <div id="Contents" data-role="page">
  2.   <header data-role="header">
  3.   <h2>ダイアログテスト</h2>
  4.   </header>
  5.   <div data-role="content">
  6.   <a href="#DialogContents" data-rel="dialog" data-transition="pop">ダイアログ</a>
  7.   </div>
  8.  </div>
  9.  
  10.  <div id="DialogContents" data-role="page">
  11.   <header data-role="header">
  12.   <h2>ダイアログのヘッダ</h2>
  13.   </header>
  14.   <div data-role="content">
  15.   <p>コンテンツ</p>
  16.   </div>
  17.  </div>

ダイアログテスト

ダイアログを動的に生成したい場合

こういうことはあまりやらないとおもいますが。

Javascript
  1.  $(document).bind('pageinit', function(e){
  2.   $('#DialogButton').bind('vclick', function(e){
  3.   // ダイアログの内容。
  4.   var dialog_html = ['<div data-role="page" id="DialogTest">',
  5.   '<div data-role="header"><h3>ヘッダ</h3></div>',
  6.   '<div data-role="content"><p>ダイアログ 生成てすと</p></div>',
  7.   '</div>'].join('');
  8.   // DOMに追加
  9.   $('body').append($(dialog_html));
  10.  
  11.   // ダイアログを表示させる。
  12.   $.mobile.changePage('#DialogTest', {
  13.   transition: 'pop',
  14.   role: 'dialog',
  15.   });
  16.   });
  17.  });
HTML
  1.  <button id="DialogButton">クリック meeeeeee!!!</button>

上記のようにDOMに追加した場合、ダイアログが閉じられた時に削除しないとイベント発生の度に追加されてしまう。 なので閉じられた時に削除をしたいわけだが、ダイアログも通常のページと同じということで、独自のイベントをトリガするわけでもなさそう。

なのでpagehideイベントを監視する。 pagehideはページ遷移の度に発生するので、動的に生成したダイアログだった場合という判定が必要になる。

Javascript
  1.  $(document).bind('pagehide', function(e, ui){
  2.   if ($(e.target).attr('id') === 'DialogTest') {
  3.   $(e.target).remove();
  4.   }
  5.  });

ダイアログテスト2。もっといい方法がありそうだけど。

トラックバック(1)

2012年2月 1日 12:18

[jQuery Mobile]初期化イベントメモWEBプログラム覚書

jQuery Mobleの初期化イベント発生時のDOMの状態がよくわからない。続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.23

[Ubuntu]Gimp gimp-painterとショートカットの設定

デフォルトで入ってるGimpにG-PenMixBrushというのを追加すると お絵描きツールとして利用できるみたいなので入れてみた。OSはUbuntu11.10。

2012
02.22

[Ubuntu]動画ダウンロードと検索が簡単にできるGMediaFinder

Youtubeなどから動画を検索、ダウンロードが出来るソフトウェアGMediaFinder。 登録とか広告とか一切ありませんUbuntu版は。Windows版もありますよ。

2012
02.21
2012
02.20

[イラスト]きれいな線のイラストを簡単に描くには?

噂のGumroadを使いたくてTwitterのアカウント作った。タマゴだと友達が出来ないみたいなのでアイコン描こうと思った。 絵を描かなくなって軽く8年は経っていて、トレス台も行方不明だったので初めて下書きから全部デジタルでやってみたんだけど、やばい。

デジタルやばい。

2012
02.15

[WordPress] get_header()とwp_head()を捨てる。

捨てることで何かメリットがあるかと言うと残念ながら特にありませんので、この内容をオススメしてるわけではありません。

2012
02.14

[Eclipse]PDTのデバック構成でURLの自動生成が表示されない。

Linux 版のPDT3.0.2でデバック構成ウィンドウから新規作成するとURLの自動生成が表示されない。

2012
02.13

[PHP]Xdebugでvar_dump()の出力が省略されて困る場合の対応

Xdebugを利用している場合、var_dump()の出力が省略されて困る場合、 xdebug.iniかini_set()で設定する。

2012
02.10

[雑記]縦横がランダムな要素を隙間なく並べるのは無理なのか。

サイトマップ作ったんだけど、やりたかったことが出来なかった。

2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。