ホームページを作る人のネタ帳

jQueryサンプル公開後の反省会。みなさんからのアドバイスを5本サンプル化

jQueryの勉強

前回公開したjQueryの自作サンプルエントリー
これはほんと有意義なコメントを方々から受けることができて、公開してよかったなと思いました。

今回は指摘を受けた箇所の再勉強をかねて、ブログにコードを書いていただいた方々のサンプルを作成いたしました。(コード勝手に使ってんじゃないよという人が万が一いるならご連絡ください)

学んだ部分を全て活用し、一本のサンプルも一番下においておきましたので、興味があったらご自由にもってっちゃってください。

また、前回利用したjQueryはバージョンが低いものを使ってましたので、最新版にしておきました。

IE7のローディング問題


これは、IE7はAjaxローディング出来ないと言う方もいらっしゃいましたが、そうではありませんでした。
Apache側にてAddDefaultCharsetがnoneになっていると、正常に動作しないようです。
色々検索すると、noneで進めているエントリが多く見受けられましたが、正解もきっちり公開している人もいたため、助かりました。


jQueryの書き方


これはきっと人それぞれなので一概に『これ、正しいから!』なんていう話にはなりませんが、参考になったものは覚えておかないと意味が無いですよね。

そんなわけで、ボタンからの呼び出し方法に修正を加えました。
Re:一晩で覚えるjQueryの逆引き基礎サンプル7つ (でぃべろっぱーず・さいど)

<input name="btn" type="button" value="ローディング" onClick="bt01()">

<input name="btn" type="button" value="ローディング" id="bt01">

js側
$(function(){
$("#bt01").click(function () {
$("#load").load("./load.html");
});
});

sampleダウンロード

sampleデモ


開くと、閉じるの処理


こちらもスマートなコードの書き方が公開されていましたので、今度から使ってみようと思います。

$('input[name=btn]').toggle(
function(){
$("#load1").load("./load.html");//HTMLをロードする処理
$(this).attr('value','閉じる')//自分自身のvalueを"ローディング"から"閉じる"に変える。
}
,function(){
$("#load1").html("");//HTMLを消す処理
$(this).attr('value','ローディング')//自分自身のvalueを"閉じる"から"ローディング"に変える。
}
);

sampleダウンロード

sampleデモ


一つのフォームで複数の入力をしたい編


jQueryを使ったサンプルコード[to-R]さんで教えていただけました。

HTML側

<p class="menu">
<a href='javascript:void(0)' title="プランA">
<span class="title1">北海道</span>
<span class="title2">飛行機</span>
<span class="title3">20000</span>
</a> |
<a href='javascript:void(0)' title="プランB">
<span class="title1">東京</span>
<span class="title2">新幹線</span>
<span class="title3">5000</span>
</a> |
<a href='javascript:void(0)' title="プランC">
<span class="title1">アメリカ</span>
<span class="title2">泳いで</span>
<span class="title3">3000</span>
</a> |
<a href='javascript:void(0)' title="プランD">
<span class="title1">インド</span>
<span class="title2">鳥に乗って</span>
<span class="title3">300000</span>
</a> |
</p>

js側

$(function(){
$("p.menu a").click(function(){
$("#ls1").val($("span.title1",this).text());
$("#ls2").val($("span.title2",this).text());
$("#ls3").val($("span.title3",this).text());
}).each(function(){
$(this).append($(this).attr("title"));
$("span",this).hide();
})
});

sampleダウンロード

sampleデモ


表示の方法が違いますが、js側に記憶させておく方法が
Re: 一晩で覚えるjQueryの逆引き基礎サンプル7つ*ホームページを作る人のネタ帳 - IT戦記に。

var data = {
hoge1: ["北海道", "車で", "3000円"],
hoge2: ["インド", "泳いで", "2500円"],
hoge3: ["アメリカ", "飛んで", "1200円"]
};

$(function(){
$("div.hoge > div.menu > a").click(function () {
var d = data[this.title];
$('div.hoge > input').each(function(i) { $(this).val(d[i]) });
return false;
});
});

sampleダウンロード

sampleデモ
このサンプルはamachangが公開している上の方のサンプルとなっています。
こんな方法もあるんですねぇ。


そうまとめ


そんなわけで、これまで学んだことをフルに活用したsampleを一本作ってみました。

ボタンを押すと別のページをローディングし、半透明にするエフェクトも加えてあります。
そのローディング先のリンクをクリックするとあらかじめ設置してあったフォームに挿入。
エフェクトを解除し、ロードも解除して終わる。

という簡単な流れですが、以下に置いておきますのでご自由に使ってください。
sampleダウンロード

sampleデモ


こんな素敵なjQueryの最新版は以下に。
jQuery

それでは、また。


この記事を見た人は以下の記事も見ています


一晩で覚えるjQueryの逆引き基礎サンプル7つ
jQueryでweb制作をする時にキープしておきたい30リストまとめ
Re:zapa氏 今更ですが、jQueryにはまりました
jQueryを使った、ランダム画像で様々なシャッフル演出効果のあるプラグイン


トップ画像のクレジット


Belinha has more than good looks
Photographer
betta design
License
Creative Commons (by-nc)
Tool for photo selecting
Gigazinize Tools - Image

yamada
Posted byyamada

Comments 1

There are no comments yet.

名前を名乗れない人  

文字化け

MACだと文字化けシテマスネ。。。

2008/04/28 (Mon) 09:57

Leave a reply