2010-07-03 ちょいと試す参考にした本は「JavaScript + jQuery ベーシックマスター」 ISBN978-4-7678-0956-4 です。何はともあれ http://jquery.com/ から jquery-1.4.2.min.js をダウンロードして試してみます。練習の課題にするのは、以前 prototype.js で作った 郵便番号データを利用する機能 と同じようなもの。要素のイベントを設定したり、受信した JSON データで選択リストを作ってみたりします。とりあえず、都道府県のリストだけ生成する簡単なプログラムを。素の機能の使い勝手を比べてみたかんじ prototype.js より簡単そうです。 今日のところはとりあえずこんな感じ。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>郵便番号JSON細切れデータを jQury で利用するサンプル</title> <link rel="stylesheet" type="text/css" href="jquery-json.css" /> <script type="text/javascript" charset="UTF-8" src="jqueryui/js/jquery-1.4.2.min.js"></script> <script type="text/javascript" charset="UTF-8" src="jquery-json.js"></script> </head> <body> <div id="content"> <div id="header"> <h1></h1> <div id="breadcrumb"><a href="/">Top</a> » <a href="./">サンプル</a></div> </div> <div id="body"> <form id="main"> <div> <span class="title">郵便番号</span> <input type="text" id="zip1" name="zip1" value="" maxlength="3" /> - <input type="text" id="zip2" name="zip2" value="" maxlength="4" /> </div> <div> <span class="title">都道府県</span> <input type="text" id="pref" name="pref" value="" /> </div> <div> <span class="title">市区町村</span> <input type="text" id="city" name="city" value="" /> </div> <div> <span class="title">住所1</span> <input type="text" id="add1" name="add1" value="" /> </div> <div> <span class="title">住所2</span> <input type="text" id="add2" name="add2" value="" /> </div> <div> <span class="title">事業所</span> <input type="text" id="corp" name="corp" value="" /> </div> <div> <span class="title"> </span> <input type="reset" id="reset" name="reset" value="リセット" /> </div> </form> </div> <div id="footer"> <div id="copyright">Copyright <span id="crYear"></span> Michinobu Maeda.</div> </div> </div> </body></html>$(function () { // h1 には title と同じ内容を設定する。 $('h1').append($('title').text()); // Copyright の年を計算して設定する。 var crYear = 2010; var crNow = new Date().getYear() + 1900; if (crYear == (crNow - 1)) { crYear += ',' + crNow; } else if (crYear < crNow) { crYear += '-' + crNow; } $('#crYear').append(crYear); // 都道府県の選択リストを作成する。 $.ajax ({ url: '/data/json/pref/prefs.json', success: function(data) { $('#pref').replaceWith( '<select id="pref" name="pref">' + '<option value="-" selected>-- 選択してください --</option>' + '</select>'); for (i = 0; i < data.length; ++i) { $('#pref').append( '<option value="' + data[i].x0401 + '">' + data[i].name + '</option>'); } } }); });2010-07-05 jQuery UI を入れてみるあうちっ! お勉強中の JavaScript のソース消しちゃったよ。でもあわてない、こんなときのために自分一人のために立てた Subversion のリポジトリ(汗)から復旧! Eclipse のローカルヒストリーからさらに最新に復旧! 安心安心。 さてと、まず http://jqueryui.com/ から一式ダウンロードします。なにやらいろいろオプションが選べるようなのですが、デフォルトのままダウンロード。自分の作業環境の適当なところにおいて、参考書に書いてある順番で CSS と JavaScript を読み込むよう HTML のソースを変更します。 すると、自分が作ったページがいきなりかっこよくなるのか?と思ったけど、全く変わりません。既存の CSS の設定には影響しないようになっているようです。 development-bundle ディレクトリは、、、よくわからないけどとりあえず消しておこう。 2010-07-07 先頭のテキストボックスにフォーカスをあてる // 先頭のテキストボックスにフォーカスをあてる。 $("input[type='text']:enabled:first").focus();だそうな。こりゃいいや。 2010-07-07 フォーカス On/Off で背景色を変えるまとめて複数の要素を指定できるのがうれしい。 $('#zip1, #zip2, #pref, #city, #add1, #add2, #corp').focus(function() { $(this).css('background', '#ffa'); }); $('#zip1, #zip2, #pref, #city, #add1, #add2, #corp').blur(function() { $(this).css('background', '#fff'); });2010-07-11 IE でうまくいかないことがこの部分が IE ではうまく動いてくれませんでした。どうしても JavaScript にさせたい処理ではないので削除しました。 // h1 には title と同じ内容を設定する。$('h1').append($('title').text());それから、次のような処理もエラーになりました。 $('#addListDialog').dialog('option', 'width', window.innerWidth * 0.9);Safari, FireFox, Opera, Chrome すべてだいじょうぶなんだけどなぁ。 あと、キーイベントの処理で微妙な違いが。これは後で解決できたとしても、文章にするのは難しいかもしれないなぁ。 2010-07-11 最初のサンプル公開郵便番号を 7桁全部入力したら、その候補を探しに行って、あれば選択リストを表示する、というサンプルを公開しました。 http://www.zippyzip.jp/sample/jquery-json.html ( 閉鎖 ) 使用しているデータについては http://www.zippyzip.jp/ ( 閉鎖 ) の説明を見てください。私が趣味で作成している独自のものです。日本郵便が配布しているデータを基に、毎月自動で更新しています。 2011-01-24 追記サンプルはこちらに移動しました。 |