jQueryを使ってみよう。(基本編 イベント)

今回はjQueryのイベントについてです。
イベントとは、例えば「クリックする」「マウスが乗る」など何かの動作をしたときに処理をさせたいときに利用します。

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>jQueryを使ってみよう。(基本編 イベント)</title>
<script type="text/javascript" src="../jquery-1.2.6.min.js"></script>
<script language="JavaScript">
$(function (){
	$("#red").click(
		function(){
			$(".msg").css("color","red");
		}
	);
	$("#blue").hover(
		function(){
			$(".msg").css("color","blue");
		},
		function(){
			$(".msg").css("color","");
		}
	);
});
</script>
</head>
<body>
<p id="fcc"><span id="red">[ 赤 ]</span> | <span id="blue">[ 青 ]</span></p>
<p class="msg">上の[ 赤 ]をクリック、[ 青 ]にマウスを乗せると文字の色が変わります。</p>
</body>
</html>

サンプル

サンプルでは、クリックしたとき、マウスが乗ったときに処理を行うような記述をしています。

クリックしたときに処理を行う場合は「click」を使います。

… 省略 …
	//id=redがクリックされたら…
	$("#red").click(
		function(){
			//処理
		}
	);
… 省略 …

上記のように、どの場所($(“#red”))がクリック(click)されたら(function(){ //処理 })処理をするという記述方法になります。イベントを利用する場合は処理する内容を『function(){}』で囲むことを忘れないようにしてください。

マウスが乗ったときに処理を行う場合は「hover」を使います。

「hover」は「マウスが乗った」場合の処理、「マウスが離れた」場合の処理の2つを記述します。はじめに乗ったときの処理を記述し、次に離れたときの処理を記述します。

… 省略 …
	//id=blueにマウスが乗ったら…
	$("#blue").hover(
		function(){
			//乗ったときの処理
		},
		function(){
			//離れたときの処理
		}
	);
… 省略 …

このようにイベントを利用すると「何かしたときに処理をする」という条件を追加できるようになります。

「click」や「hover」以外にもさまざまなイベントが用意されていますので、チェックしていろいろ試してみて下さい。

Events – jQuery 1.2.6 日本語リファレンス

 

さて今回で基本編は今回で終わりです。書き方の基本がわかれば、暗合のようだったものがなんとなくわかるような気がしませんか?
次回からはテキストを変更したり、HTMLタグを書き換えるといったメソッドがたくさん用意されているので、これらを少しずつ勉強していきます。

またjQueryにはプラグインと呼ばれるさまざまな機能を追加するためのプログラムがたくさん配布されています。これらを利用することで、面白い機能や実用的な機能を簡単にホームページに追加することができます。ブログで紹介していたりされていたり、いろいろなプラグインを集めたサンプルサイトなどもたくさんあるので、いろいろ探して「これは!」と思うものがあれば実際に導入してみましょう。

jQueryサンプル集 – DesignWalker
jQuery 146 Plugins:skuare.net

ではこのへんで。

jQueryを使ってみよう。(基本編 メソッド)

今回はメソッドについて説明していきます。
メソッドといわれると「何?」って感じですが、大雑把に「その対象に対して行う命令」と覚えておいて下さい。
例えば車でアクセルを踏むと動きます。これはアクセルに「踏むと車を動かす」という命令が車の仕組みとして組み込まれているからです。
jQueryにも「こう書けば、こういう命令をする」という予め組み込まれた命令(メソッド)が用意されています。まずこのメッソドの書き方を覚えていきましょう。

ではテーブル(表組)の見た目をjQueryで変えてみます。

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>jQueryを使ってみよう。(基本編 メソッド)</title>
<script type="text/javascript" src="../jquery-1.2.6.min.js"></script>
<script language="JavaScript">
$(function (){
	$("th").css({"color":"#ffffff","background":"#000000"})
		.css({"font-size":"14px"});
	$("th,td").css({"padding":"6px"});
	$("tr:even").css({"background":"#dddddd"});
	$("tr:odd").css({"background":"#fafafa"});
});
</script>
</head>
<body>
<table>
<tr>
<th>書籍名</th><th>著者</th><th>価格</th>
</tr>
<tr>
<td>デザインのデザイン</td><td>原 研哉</td><td>¥ 1,995 (税込)</td>
</tr>
<tr>
<td> なぜデザインなのか。 </td><td>原 研哉/阿部 雅世</td><td>¥ 1,890 (税込)</td>
</tr>
<tr>
<td>  HAPTIC —五感の覚醒  </td><td>株式会社竹尾 原研哉+日本デザインセンター原デザイン研究所</td><td>¥ 3,990 (税込)</td>
</tr>
<tr>
<td>原研哉のデザイン</td><td>アイデア編集部</td><td>¥ 1,890 (税込) </td>
</tr>
</table>
</body>
</html>

サンプル

サンプルではHTML、CSSでまったく見た目の変更は指定していませんが背景に色がついたりと見た目が変更されています(サンプルでは行を少し増やしています)。

$("th").css({"color":"#ffffff","background":"#000000"});

上記は『$(“th”)=thタグ』に『css({“color”:”#ffffff”,”background”:”#000000″})=「color:#ffffff」「background:#000000」のスタイルを適用しなさい』という意味になります。

このようにメソッドは処理をする要素を指定($(“th”))した後に「 . (ドット)」を入れてつなげます。

またメソッドはいくつもつなげて利用することができます。これをメソッドチェーンといます。複数つなげる場合も下記のように「 . (ドット)」でつなげていきます。

$("th").css({"color":"#ffffff","background":"#000000"})
		.css({"font-size":"14px"});

またサンプルの例ではセレクタに「tr:even」「tr:odd」を指定していますが、「tr:even=奇数番目のtr」「tr:odd=偶数番目のtr」という意味になります。こう指定することで、どれだけ行を増やしていっても交互に色がかわるテーブルになります。

今回は「メソッド」の書き方を説明していきましたが、「セレクタ」「メソッド」をあわせて、なんとなく読めるようになったと思います。

$("p#msg").text("こんにちは。");

例えば上記の場合「id=msgと指定されたpタグ」に「text」というメソッドがつながっている。これがわかればマニュアルを見て「text」が何の命令をしてるのかを確認すれば、「text=テキストを設定する」となっていので、「id=msgと指定されたpタグ」に「こんにちは。というテキストを設定しろ」と書いていることがわかります。

ここまでくればマニュアルも活用できると思いますので、興味がある方はどんなことができるのかどんどんマニュアルで調べていろいろ試してみて下さい。

jQuery 1.2.6 日本語リファレンス

あと基本として覚えておくべきものとして「イベント」があります。例えば「マウスが乗ったときに」「クリックされたときに」など、「何かをしたときに」処理をする、といった条件をつけたい場合があります。「マウスが乗ったら画像を変更する」場合などに、この「イベント」を利用します。

ということで次回は基本編の最後「イベント」について勉強していきます。

モノを覚えるトキのコツ。

新しくモノを覚える時、それを身につけるコツがあります。自分は何となくこうしてきたというお話です。

1.知らない言葉をなくしていく

何かモノを覚える時、必ず何かを見て(観て)、聞いて覚えると思います。

よく新しい技術を学ぶとき、なんらかのドキュメントを見ながら、もしくは人に聞きながら覚えていくことが多いのですが、必ずぶつかる壁が「わからない言葉がでてくる」ということ。

わからない言葉が説明に入っていると意味がつかめない。なんとなくわかるけどぼんやりと曇ったかんじになります。例えば「この変数名を変えて」といわれても、「変数名」の意味がわからないと、何を変えたらいいのかわかりません。

僕自身、IT業界にはいったときはほとんど言葉を知らない状態で、さらにはじめは何かを誰かに聞けるような状態ではなく、人が話していることを理解するのに時間がかかることが多かったのです。

そこではじめたのは、技術を身につけるよりも「知らない言葉をなくしていく」ことを意識して仕事をするようになりました。

これは当たり前のようですが、目の前に得たい技術ややらないといけないことが積み重なっていると、そちらをどうにかしようとして視野が狭くなり、言葉がどうのなんてあまり気にしません。あまり理解できなくてもそれができるかどうかが重要になってしまいがちになります。

そうなると理解できるような情報ばかりを探し、わからない言葉が多いものはマニュアルを読む気もしません。当然知っている言葉が少ないと、その分情報を得る場所はどんどん狭くなり、自分の理解できるもの・知らない言葉があまりない情報を見つけることにかなりの時間を費やすことになります。

その結果、言葉を知っていれば20・30分もあればできるようなことも、言葉を知らないと調べるだけで1時間なんてあっというまにすぎてしまい、それができるころには数時間がすぎている、なんてこともありました。

なので未経験に近い状態で仕事をしてる人には、今は「技術を身につける」よりもまず「知らない言葉をなくしていく」ことに力をいれるようにすすめています。

これが案外、すっとできる人が少ないのですが、遠回りに感じることが多いのでしょう。
ですが『急がばまわれ』です。まず自分が知らない言葉をどんどん覚えるようにしましょう。

2.とにかく多くの本で目次を確認する

プログラムの技術書を読む、マニュアルをを読む場合、一から順番に読みながら身につけていっている人もよくみかけます。これもいいことなのですが、仕事で多くのことをこなしていく中ではあまりおすすめできません。

無駄に時間がかかりすぎる場合が多いのです。

そこでおすすめする方法は「とにかく多くの本で目次を確認する」ということです。多くの本で目次を確認するということは、大雑把にいうと「できることをたくさん知っておく」ということです。

技術書やマニュアルにはたいていの場合「目次」がついています。この目次だけを覚えていくのです。目次にはその内容の要約されたタイトルがついています。例えばPHPやJavascriptなどの本で目次に「時間を表示する」と書かれてあるということは「PHPやJavascriptでは時間の表示ができる」ということです。

それを覚えておくのです。そしてPHPならでPHPのきるだけ多くの本の目次だけに目を通すようにします。偏った情報しかのっていない、また目次が大雑把すぎる、という本だと全体が把握しにくいので1冊より2冊、2冊より3冊とどんどん目次を確認していきます。

中身はあまり見ません。さらっと目を通し、できるんだなということだけを確認します。実際に「時間を表示する」ことが必要になったときに、内容にしかっり目を通し方法を確認し実際にプログラムをつくります。

目次を次々見ていくとPHPではこういうことができる、Javascriptではこういうことができる、ということがなんとなくわかってくるので、あとはそれを実際に使う時がきたら本を開き実際の記述方法などを覚えていくようにします。

そうすることで覚える情報が少なくてすみ、なおかつ広範囲のことを網羅しやすくなります

時間を表示するといっても方法はいくつかあり、他のことも一緒に一からいちいち覚えていっていると、だんだんとその方法を覚えるだけで頭と時間がいっぱいいっぱいになってきます。経験や知識が乏しい状態では必要・不必要に関わらず何でもかんでも網にかけて拾ってしまいやすいので、変にあれもこれも覚えようとしてしまいます。

はじめのころはとにかくなにか身につけねば!と、具体的な方法ばかりを覚えようとしてしまいがちですが、まずは「目次」にしっかり目を通し、できることの確認だけしていきましょう。

実際いろいろな技術に少しずつ慣れてくると、「できるかどうか」を広範囲で知っているだけでも、いろいろな「勘」が働くようになります。「これをするためには[あれ]と[あれ]とを使えばいけるな」とか、実現可能かどうかを判断しやすくなります。

もちろん実際にプログラムを書いたり自分自身で経験していくことは重要です。しかし多くのことを隅々まで覚え自分自身で経験していこうとすると、どれだけ時間があっても足りなくなってきます。

「中身はなくても引き出しの数だけは用意しておく」。引き出しがないと中身をいれることもできません。まずは知っておくことで引き出しをつくり、必要があるときに実際にプログラムを書いたり自分自身で経験しその方法を身につけ中身をいれていくといった具合です。

 

長々となりましたが、これは自分の少ない経験上の話です。十人十色で人によっていろいろやり方はあると思います。覚えたいこと、やりたいこと、やらないといけないことは日々増えていきますが、なにか自分にあったルールややり方をつくって、いろんなことをカタチにできるようになりたいものです。