libro
www.tuyano.com
jQuery Mobileによるスマートフォン用Webサイト作成入門

jQuery Mobileの初期化処理 (2/5)

作成:2012-02-20 07:55
更新:2012-03-29 10:30

■<a>タグを自動的にボタン化する

では、実際に初期化を行ってみましょう。まずは、ページの初期化からです。これは、「pagecreate」というイベントとして用意されています。$(document).bindpagecreateに関数をバインドし、その中で初期化処理を行なう形になるでしょう。

下のリスト欄に簡単なサンプルを挙げておきます。これは、<a>タグのボタンをレンダリングする例です。<a>タグは、data-role="button"を設定することでボタンとして表示できますが、いちいちこれを書かないといけないのは面倒臭いですね。そこで、<a>タグをすべて初期化時にレンダリングするようにしてみました。

ここでは、まず$(document).bindpagecreateに関数をバインドするのでしたね。これは以下のようなかた地で記述されます。

$(document).bind("pagecreate", function(){……略……});

これで、第2引数の関数定義で初期化処理を記述しておけば良いわけです。今回の「<a>タグを全部ボタンにレンダリングする」というのは、以下のようにしています。」
$('a').buttonMarkup({ corners: false, theme:"b"});
buttonMarkupは、以前、リンクのイネーブル状態を操作したりするのに紹介しました。が、このように<a>タグにボタンのレンダリングを実行するのにも用いられます。引数には、レンダリングする際の設定情報を連想配列でまとめてあります。今回は「corners」と「theme」という値を用意してみました。cornersは、角の丸みに関するもので、trueにすると丸みを付け、falseだとつけません。themeはテーマに関するもので、デフォルトでは「a」~「e」のテーマ(正確にはスウォッチといいます)を指定します。

実際にやってみるとわかりますが、<a>タグのボタンは角の丸みがないブルーグレーの表示になりますが、普通の<input type="button">のボタンはそのままです。ボタンがみんな変わるわけではないのですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<!DOCTYPE html>
<html>
	<head>
	<title>My Page</title>
	<meta http-equiv="Content-Type"
			  content="text/html; 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 type="text/javascript"
		 src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
		 
	<script type="text/javascript" >
	$(document).bind("pagecreate", function(){
		 $('a').buttonMarkup({ corners: false, theme:"b"});
	});
	</script>
	
	<script type="text/javascript"
		 src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
</head>
<body>

	<!-- home page -->
	<div id="home" data-role="page">
		 <div data-role="header">
			  <h1>Sample</h1>
		 </div>
		 <div data-role="content">
			  <p id="msg">サンプル</p>
			  <div>これはサンプルのページです。</div>
			  <a href="#">link</a>
			  <input type="button" value="button">
			  <hr>
		 </div>
	</div>
	
</body>

</html>

※関連コンテンツ

「jQuery Mobileによるスマートフォン用Webサイト作成入門」に戻る