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にしてみてください。

●プログラム・リスト●

*program list*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!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サイト作成入門」に戻る