<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>p15.jp &#187; JavaScript</title>
	<atom:link href="http://p15.jp/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://p15.jp</link>
	<description>(X)HTML・CSS・CMS に関するいろいろと、チラシの裏。</description>
	<lastBuildDate>Wed, 09 Nov 2011 14:04:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Feed2JS を PHP 5.3 で使うには</title>
		<link>http://p15.jp/2011/10/24/204840</link>
		<comments>http://p15.jp/2011/10/24/204840#comments</comments>
		<pubDate>Mon, 24 Oct 2011 11:48:40 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=2093</guid>
		<description><![CDATA[sb-users.jp の関連ブログ記事コーナーで利用している Feed2JS ですが、PHP 5.3.3 の環境ではエラーが出て何も表示されませんでした。 正しく動いているか確認すべく /feed2js/magpie_ [...]]]></description>
			<content:encoded><![CDATA[				<p><a href="http://sb-users.jp/">sb-users.jp</a> の関連ブログ記事コーナーで利用している <a href="http://feed2js.org/">Feed2JS</a> ですが、PHP 5.3.3 の環境ではエラーが出て何も表示されませんでした。<br />
				正しく動いているか確認すべく /feed2js/magpie_debug.php にアクセスするとやはりエラーが。<br />
				/feed2js/magpie/rss_parse.inc の L.153 の <a href="http://jp.php.net/manual/ja/function.split.php">split</a> がまずいらしい。</p>
				<blockquote cite="http://jp.php.net/manual/ja/function.split.php" title="PHP: split - Manual">
				<p>この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。</p>
				</blockquote>
				<p class="cite"><cite><a href="http://jp.php.net/manual/ja/function.split.php">PHP: split &#8211; Manual</a></cite></p>
				<p>おおう・・・。</p>
			</div>
			<div class="text more" id="more2093">
				<h2>/feed2js/magpie/rss_parse.inc の修正</h2>
				<p>代替となるのが <a href="http://jp.php.net/manual/ja/function.preg-split.php">preg_split</a> ですが、その部分だけの置き換えではうまくいかず、以下のようにしたところ magpie_debug.php でのエラーはなくなりました。</p>
				<pre><code>list($ns, $el) = preg_split( '/:/', $element, 2);</code></pre>
<h2>/feed2js/feed2js_config.php の修正</h2>
<p>magpie_debug.php でのエラーはなくなったものの、実際のページには何も表示されないまま。<br />
そこで、Feed2JS が吐き出している JavaScript を直接ブラウザで表示してみたところ、別のエラーが出ていました。<br />
/feed2js/feed2js_config.php の L.62 及び L.63 にある <a href="http://php.net/manual/ja/function.ereg-replace.php">ereg_replace</a> が問題とのこと。</p>
<blockquote cite="http://php.net/manual/ja/function.ereg-replace.php" title="PHP: ereg_replace - Manual">
<p>この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。</p>
</blockquote>
<p class="cite"><cite><a href="http://php.net/manual/ja/function.ereg-replace.php">PHP: ereg_replace &#8211; Manual</a></cite></p>
<p>また出たー！</p>
<p>代替となるのが <a href="http://jp2.php.net/manual/ja/function.preg-replace.php">preg_replace</a> で、こちらも置き換えしただけでは動かなかったので L.62 を以下のように修正しました。</p>
<pre><code>$subquotes = preg_replace("/&apos;/", "'", stripslashes($text));</code></pre>
				<p>これにて一件落着！</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2011/10/24/204840/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Picmv がエラーになる原因がわかったような</title>
		<link>http://p15.jp/2009/01/26/000217</link>
		<comments>http://p15.jp/2009/01/26/000217#comments</comments>
		<pubDate>Sun, 25 Jan 2009 15:02:17 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[(X)HTML CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Serene Bach]]></category>
		<category><![CDATA[ソフトウェア]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=711</guid>
		<description><![CDATA[先日いつものように Picmv を使おうと思ったらエラーになって、いろいろやっているうちに正常に動作するようになった件、原因がわかったような気がします。 出力先ディレクトリを Landisk の共有フォルダに設定している [...]]]></description>
			<content:encoded><![CDATA[				<p>先日いつものように <a href="http://p15.jp/2009/01/24/003008">Picmv を使おうと思ったらエラー</a>になって、いろいろやっているうちに正常に動作するようになった件、原因がわかったような気がします。</p>
				<p>出力先ディレクトリを Landisk の共有フォルダに設定しているんだけど、エクスプローラでその共有フォルダを開いてから Picmv を実行したらちゃんと動くみたい。<br />
				というよりも、Landisk がスリープ状態？省電力モード？になっている状態だと Picmv が保存しに行こうとしても接続できない、そんなかんじだと思います。</p>
				<p><a href="http://www6.plala.or.jp/nyk/Picmv.html">Picmv</a> は何年も前から愛用させていただいているので、なんとなくでもエラーの原因がわかってよかったですヽ(・ω・)ﾉ</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2009/01/26/000217/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript で高さ揃えとロールオーバー</title>
		<link>http://p15.jp/2008/12/05/215745</link>
		<comments>http://p15.jp/2008/12/05/215745#comments</comments>
		<pubDate>Fri, 05 Dec 2008 12:57:45 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[(X)HTML CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=463</guid>
		<description><![CDATA[wu せんせーご推薦の二つ、まずは高さ揃えから。 jQueryでブロック要素の高さを揃えてみる &#8211; 徒書 jQuery と上記を読み込んで、高さ揃えをしたい id や class を指定するだけでおっけー。  [...]]]></description>
			<content:encoded><![CDATA[				<p>
					<a href="http://3ping.org/">wu せんせー</a>ご推薦の二つ、まずは高さ揃えから。<br />
					<a href="http://www.akatsukinishisu.net/itazuragaki/js/i20070801.html">jQueryでブロック要素の高さを揃えてみる &#8211; 徒書</a><br />
					jQuery と上記を読み込んで、高さ揃えをしたい id や class を指定するだけでおっけー。
				</p>
				<p>
					つぎはロールオーバー。<br />
					<a href="http://www.akatsukinishisu.net/itazuragaki/js/js_rollover.html">JavaScriptでロールオーバー &#8211; 徒書</a><br />
					HTML には hogehoge_off.png などという画像を img タグで表示しておいて、hogehoge_on.png という画像を用意しておくと、オンマウスで hogehoge_on.png を表示してくれるという仕組み。<br />
					CSS 背景でロールオーバーしようとするとやたらと class をつけなきゃならんかったりするので、この方法だと入力文字数が 1/5 くらいになる気がします。</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/12/05/215745/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>簡潔サンプル完成したっ！</title>
		<link>http://p15.jp/2008/05/07/000740</link>
		<comments>http://p15.jp/2008/05/07/000740#comments</comments>
		<pubDate>Tue, 06 May 2008 15:07:40 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=228</guid>
		<description><![CDATA[3 日はかかるつもりでいたけど意外と早くできました！ ヽ(・ω・)っ JavaScript のおべんきょう 2008 年 5 月吉日 本番用に使いたい内容をほぼ盛り込んだので、項目を増やして例外を追加したらおっけーなはず [...]]]></description>
			<content:encoded><![CDATA[				<p>
					3 日はかかるつもりでいたけど意外と早くできました！<br />
					ヽ(・ω・)っ <a href="http://p15.jp/files/study/2008/05/input.html">JavaScript のおべんきょう 2008 年 5 月吉日</a>
				</p>
				<p>
					本番用に使いたい内容をほぼ盛り込んだので、項目を増やして例外を追加したらおっけーなはず。<br />
					もうちょっとで妄想が形になると思うだけで炊き立てごはん 3 杯いけます！
				</p>
				<p>
					以下はサンプルの解説というかメモ。
				</p>
			</div>
			<div class="text more" id="more228">
				<dl>
				<dt>
						色を変更する ( 0 から 9 及び a から f までの 6 文字が有効)
					</dt>
				<dd>
				<p>
							CSS の color とか background-color に適用させるという想定。<br />
							テキストボックスに直接入力したりコピペもできるし、カラーピッカーボタンをクリックしてぽちっと色を選ぶこともできます。
						</p>
				</dd>
				<dt>
						px 数を変更する ( 0 から 9 の 2 文字が有効)
					</dt>
				<dd>
				<p>
							border-width とか padding-top とかそういうのに適用させるという想定。<br />
							テキストボックスへの直接入力のみ。
						</p>
				</dd>
				<dt>
						行間を変更する ( 0 から 9 及び . の 3 文字が有効)
					</dt>
				<dd>
				<p>
							line-height で 1.5 など、小数点も含む 3 文字を入力するために作った。<br />
							300 とかもエラーにならないんだけど、そんな数値にする人はいないだろうからこのままでいいや。
						</p>
				</dd>
				<dt>
						ラジオボタンの場合
					</dt>
				<dd>
				<p>
							あらかじめ選択できる項目が限られているときのために作った。<br />
							本番では入力されるデータ = CSS のプロパティの値とはできないところがあるのでつまずかないといいなぁ。
						</p>
				</dd>
				<dt>
						データの送信
					</dt>
				<dd>
				<p>
							送信ボタンクリックで出力用の php ファイルに $_POST['name'] を使って出力。
						</p>
				</dd>
				</dl>
				<p>
					JavaScript たのしーｗ</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/05/07/000740/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaScript の赤ペン先生ありがとう</title>
		<link>http://p15.jp/2008/05/06/020720</link>
		<comments>http://p15.jp/2008/05/06/020720#comments</comments>
		<pubDate>Mon, 05 May 2008 17:07:20 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[その他]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=227</guid>
		<description><![CDATA[先日 JavaScript についてダラダラと調べた記事を公開したところ、せんせー方よりご指導賜りましたヽ(・ω・)ﾉ 我らがポス takkyun せんせーからは、「:」 は「連想配列」ではなく、例えば {propert [...]]]></description>
			<content:encoded><![CDATA[				<p>
					先日 <a href="http://p15.jp/2008/05/04/174505" title="JavaScript のおべんきょう - p15.jp">JavaScript についてダラダラと調べた記事を公開した</a>ところ、せんせー方よりご指導賜りましたヽ(・ω・)ﾉ
				</p>
				<p>
					我らがポス <a href="http://serennz.sakura.ne.jp/sb/">takkyun せんせー</a>からは、「:」 は「連想配列」ではなく、例えば {property: hoge} とあったとき property はラベルみたいなもの、との指摘をいただきました。<br />
					お忙しいところわざわざ声をかけてくださってありがとうございました！
				</p>
				<p>
					心の故郷 <a href="http://spais.jp/">nic せんせー</a>からは、JavaScript はうまくいってるかい？と気にかけていただき、ここぞとばかりに前述の記事を見てもらって謎はほぼ解決！ありがとうございました！<br />
					以下、謎解きと私のアホっぷりの記録(´･ω･`)
				</p>
			</div>
			<div class="text more" id="more227">
				<h2>
					サンプルが動かなかった理由<br />
				</h2>
				<p>
					nic せんせーが書いてくれたサンプルがうまく動かなくて、あんまり質問するのも気が引けるからと前回解読を試みたわけですが、動かない原因が判明した！<br />
					なんと・・・IRC で会話しながら追加した部分で見落としていた行が・・・！<br />
					書くべきものを書いていなかったんだから動かなくて当然でした(´･ω･`)
				</p>
				<h2>
					謎はすべて解けた！<br />
				</h2>
				<p>
					記事中で疑問型だった部分一つ一つ丁寧に答えてくれましたヽ(・ω・)ﾉ<br />
					2008-05-05 IRC のログ nic せんせーの発言より一部抜粋・編集しました。
				</p>
				<dl>
				<dt>
						$( element ) は from.Element としていないのに from.Element の内容を指している。なんで？
					</dt>
				<dd>
				<p>
							checkColorValue: function( element ) { となっているが、これは checkColorValue メソッドに渡された 1 番目の値を element として扱いますよ、という意味。<br />
							colorChange.checkColorValue(fromElement) となっていたら、element = fromElement となる。
						</p>
				</dd>
				<dt>
						if( ? == true ) の太字部分が省略されているのではなかろうか。
					</dt>
				<dd>
				<p>
							省略すると ==true で自動的に判断するようになっている。
						</p>
				</dd>
				<dt>
						変数「 roll 」は配列で、その配列の一つ一つが連想配列ってこと？
					</dt>
				<dd>
				<p>
							正解。一般的に多次元配列といいます。
						</p>
				</dd>
				<dt>
						this.status = this.status &#038;&#038; b? true: false; で、valid はflag.valid( colorChange.asColorNumber( roll[i] ) ); で確認してるけど status は必ず true になるんじゃないの？
					</dt>
				<dd>
				<p>
							&#038;&#038; は論理積なので、途中で status が一度でも false になった場合、それ以降は valid が true でも status が false のままなので false となる。<br />
							1×1＝1 だけど 1×0=0、0×0=0 という考え方だそうです。
						</p>
				<p>
							もし論理積を使っていなかったら、途中で false になっていても roll[i] の最後の行が true だったら true として扱われてしまう！
						</p>
				</dd>
				</dl>
				<p>
					もー、最後のはガッテンガッテンガッテン！でした。すっきり！
				</p>
				<h2>
					簡潔なサンプルを作ってみよう<br />
				</h2>
				<p>
					最初から複雑 (でもないけどｗ) な XHTML に適用する JavaScript を書こうとするから難しさが倍増しているのではないかと思い、やりたいことを簡潔に書いた XHTML を用意して骨組みとなる JavaScript を書いてみることにしました。<br />
					それがうまく動いたら、CSS を書き換えるリスト の項目を増やして例外処理があれば追加していけば完成するはず！
				</p>
				<p>
					早速 XHTML は用意したので、また 3 日くらい悩もうと思いますヽ(・ω・)ﾉ</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/05/06/020720/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript のおべんきょう</title>
		<link>http://p15.jp/2008/05/04/174505</link>
		<comments>http://p15.jp/2008/05/04/174505#comments</comments>
		<pubDate>Sun, 04 May 2008 08:45:05 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[nic]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=225</guid>
		<description><![CDATA[jQuery と PHP でテンプレートの CSS を簡単に作れるなにかを製作中ですが、意味不明になってきたので基礎を学びたいと思いますヽ(・ω・)ﾉ というのも、とりあえず動けば御の字！と思って書いていたのを見かねた  [...]]]></description>
			<content:encoded><![CDATA[				<p>
					jQuery と PHP でテンプレートの CSS を簡単に作れるなにかを製作中ですが、意味不明になってきたので基礎を学びたいと思いますヽ(・ω・)ﾉ
				</p>
				<p>
					というのも、とりあえず動けば御の字！と思って書いていたのを見かねた <a href="http://spais.jp/">nic せんせー</a>が、こうやったらいいよと書いてくれたお手本の中身がさっぱりわからんからです。<br />
					var とか : とかの意味がわかったらもうちょっと何とかなるかもと企んでいます。
				</p>
				<blockquote title="2008-05-02 IRC のログ nic せんせーの発言より抜粋">
				<p>
						プログラムの構造を再利用性を高くするのを抽象化といいます。<br />
						たくさんのタイピングをしないことと、タイプミスを減らすこと、プログラム全体の見通しをよくする、などといったメリットがあります。
					</p>
				</blockquote>
				<p class="cite">
					<cite>2008-05-02 IRC のログ nicせんせーの発言より抜粋</cite>
				</p>
				<p>
					とのこと！なんかよくわかったような気がするよ！
				</p>
			</div>
			<div class="text more" id="more225">
				<p>
					最初に自分で書いてたコードはこんなの。
				</p>
				<pre><code>$('#bodyColor').focus(function() {
&#9;var t = setInterval(function() {
&#9;&#9;if($('#bodyColor').val().match(/^[0-9a-f]{6}$/)) {
&#9;&#9;&#9;$('body, #header').css('color', '#'+$('#bodyColor').val());
&#9;&#9;&#9;$('#bodyColor').css('background-color', '#ffffff');
&#9;&#9;&#9;$('p.bodyColor').hide();
&#9;&#9;}
&#9;&#9;else {
&#9;&#9;&#9;$('#bodyColor').css('background-color', '#ef3b3b');
&#9;&#9;}
&#9;}, 100);
});</code></pre>
				<p>
					こんなのが延々と項目の分だけずらーっとありました。<br />
					部分的に見たら (私的には) わかりやすかったんだけど、機能を追加したいときとか全部の箇所に追加しないとならんくてコピペが大変。
				</p>
				<p>
					nic せんせーが書いてくれたやつは、こういう材料 (配列) で、下ごしらえはこうやって (いくつかの変数) 、こう調理すると完成どん！ (最後の function ？) みたいなかんじだと思います。<br />
					私のは、材料一つ一つの下ごしらえと調理法はひとまとまりになっているけど、コードを全部読まないと全部の材料すらわからないので、レシピに置き換えるとすごく不親切だしわかりにくい。<br />
					こういうことですね？せんせー！
				</p>
				<p>
					そんな事情で nic せんせーの書いてくれたやつを解読すべく頑張ります。<br />
					きっと私の脳みそに合わせて書いてくれているはずなのでそんなに難しいことは書いていないはず！<br />
					以下、ジャポニカ学習帳。無駄に長いよ。
				</p>
				<h2>
					CSS を書き換えるメソッド<br />
				</h2>
				<pre><code>var colorChange = { ? };</code></pre>
<p>
	変数「 colorChange 」を宣言している。<br />
	var は変数。
</p>
<pre><code>asColorNumber: function( a ) { &#12316; },
checkColorValue: function( element ) { &#12316; }</code></pre>
				<p>
					あとで出てくる var roll の中身と同じようなものを作ってるってことかなぁ。<br />
					var colorChange の中身が連想配列になるってこと？
				</p>
				<p>
					ラベル「 asColorNumber 」の中身は a というパラメータを持った関数で、ラベル「 checkColorValue 」の中身は element というパラメータを持った関数です。
				</p>
				<p>
					: (コロン) は連想配列。<br />
					function は関数。( ) 内はパラメータ = 引数。
				</p>
				<ul>
				<li>
						<a href="http://d.hatena.ne.jp/m383m/20070919/1190190692">連想配列 コロン ラベル &#8211; まさぶログ</a>
					</li>
				<li>
						<a href="http://d.hatena.ne.jp/amachang/20070202/1170386546">JavaScript の配列と連想配列の違い &#8211; IT戦記</a>
					</li>
				<li>
						<a href="http://anond.hatelabo.jp/20070622101313">javascriptを理解するためのたった2つの大切なこと:改</a>
					</li>
				</ul>
				<pre><code>if( this.checkColorValue( a.fromElement ) ){
&#9;return true;
}
else{
&#9;return false;
}</code></pre>
				<p>
					もし、オブジェクト自身のラベル「 checkColorValue 」の値が・・・わからん。<br />
					せんせーのコメントには「 a の中身は roll オブジェクト（配列）の要素」とあるけど、そんなの誰が決めたんだ！<br />
					そして、if( ? <strong>== true</strong> ) の太字部分が省略されているのではなかろうか。
				</p>
				<p>
					1 行目はわからんので飛ばして、1 行目の条件に当てはまっている場合は true を返して、そうでない場合は false を返す。
				</p>
				<p>
					this はオブジェクト自身を示す。<br />
					return は関数からの戻り値を指定する。
				</p>
				<pre><code>if( $( a.toElement ).css( a.property ) != '#'.concat( $( a.fromElement ).val() ) )
&#9;$( a.toElement ).css( a.property, '#'.concat( $( a.fromElement ).val() ) );</code></pre>
				<p>
					もし、roll オブジェクトの toElement の property という CSS の値が fromElement の値と異なる場合、toElement の値を fromElement の値で書き替える。
				</p>
				<p>
					!= は「等しくない」の演算子。<br />
					concat は 配列を連結する。$( a.fromElement ).val() の値が eeeeee だったとしたら #eeeeee となるということ。<br />
					val は内容を返す。$( a.fromElement ) の値を返すということ。
				</p>
				<p>
					if { } の { } が省略されてますね！
				</p>
				<pre><code>return $( element ).val().match(/^[0-9a-f]{6}$/)? true: false;</code></pre>
<p>
	$( element ) の値が /^[0-9a-f]{6}$/ に当てはまっていたら true を返し、そうでない場合は false を返す。<br />
	$( element ) ってなんだ・・・さっきからなんとなく雰囲気はわかるんだけどはっきりした説明がつかない。
</p>
<p>
	match は正規表現を使用して文字列を検索し、一致した文字列を返す。<br />
	/^[0-9a-f]{6}$/ は 0 から 9 まで、a から f までの文字が 6 文字だった場合の正規表現。
</p>
<p>
	? ? foo : bar; は論理式で、もし ? が true だった場合は foo を返し、そうでない場合は bar を返すということ。if( ? ) { foo の処理 } else { bar の処理 } と同じこと。
</p>
<h2>
	CSS を書き換えるリスト<br />
</h2>
<pre><code>var roll = [
&#9;{ property: 'color', fromElement: '#bodyColor', toElement: 'body, #header'},
&#9;{ property: 'background-color', fromElement: '#bodyBackground', toElement: 'body, #header'},
&#9;{ property: 'color', fromElement: '#descriptionColor', toElement: 'p.description'},
&#9;{ property: 'color', fromElement: '#naviTitleColor', toElement: '#navigation dt'}
];</code></pre>
				<p>
					変数「 roll 」は配列で、その配列の一つ一つが連想配列ってこと？わからん。
				</p>
				<h2>
					テキストフィールドの評価状況を管理するオブジェクト<br />
				</h2>
				<pre><code>var flag = {
&#9;status: null,
&#9;valid: function( b ){
&#9;&#9;this.status = this.status &amp;&amp; b? true: false;
&#9;}
};</code></pre>
				<p>
					変数「 flag 」の中身は連想配列ってこと？ colorChange と同じかな。<br />
					ラベル「 status 」は常に null、ラベル「 valid 」は b というパラメータを持った関数で、this.status と b の両方が true だった場合 true を返し、そうでない場合は false を返す・・・って何のこっちゃ。<br />
					せんせーのコメントには「すでにステータスが false だったら true が渡されても false のまま」とあるのでその処理なんだろうけど意味はわからん。
				</p>
				<p>
					&#038;&#038; は論理積の演算子。両方とも true だったら true を返す。
				</p>
				<h2>
					メイン<br />
				</h2>
				<pre><code>(function($){
&#9;&#12316;
})(jQuery);</code></pre>
				<p>
					メインの関数の外枠。<br />
					最後の (jQuery); が謎だったので質問してみた。
				</p>
				<blockquote title="2008-05-01 IRC のログ nic せんせーの発言より抜粋">
				<p>
						(function(hoge){})(huga); とした場合 hogeにhugaが代入される<br />
						ここでは (function($){})(jQuery); なので $にjQueryが代入される<br />
						別になくてもいいけど jQuery 縛りですよという明示にもなるから俺はいれてる
					</p>
				</blockquote>
				<p class="cite">
					<cite>2008-05-01 IRC のログ nicせんせーの発言より抜粋</cite>
				</p>
				<p>
					とのこと。わかったようなわからんような。
				</p>
				<pre><code>var t = setInterval( function(){ &#12316; }, 1000 );</code></pre>
<p>
	以下の関数を指定の時間毎に繰り返すということ。<br />
	setInterval はタイマーのメソッド。単位はミリ秒なので 1000 と指定したら 1 秒ということ。<br />
	変数名は省略してもいいらしい。
</p>
<pre><code>flag.status = true;
for( var i = 0; i &lt; roll.length; i++ ){
&#9;flag.valid( colorChange.asColorNumber( roll[i] ) );
}</code></pre>
				<p>
					まずステータスを true にしておいて、書き換えリストを順番にチェックする。とせんせーのコメントに書いてあった。
				</p>
				<p>
					for は指定された条件が false になるまで繰り返し処理を行う。<br />
					var i = 0; は「初期値」。変数 i は 0 ですよということ。<br />
					i &lt; roll.length; は「条件」。変数 i が配列 roll の長さよりも小さいときということ。length は配列の長さを示すプロパティだけどちょっと特殊らしい。<br />
					i++ は「条件の変更」。++ はインクリメントで変数の値を 1 つ増やす、なので、変数 i の値を 1 つ増やすということ。<br />
					flag.valid ? は「命令」。配列 roll の 1 つ目から順番に colorChange.asColorNumber を実行するんだけど、flag.valid (すでにステータスが false だったら true が渡されても false のまま) ということ。だんだん説明が適当になってきた気がする。
				</p>
				<pre><code>if( flag.status ){
&#9;$('p.submit input.button').removeAttr( 'disabled', 'disabled' );
}
else{
&#9;$('p.submit input.button').attr( 'disabled', 'disabled' );
}</code></pre>
				<p>
					もし、全ての評価で true だったら submit できる、 評価のうちひとつでも false が出たら submit できない。とせんせーのコメントにある。
				</p>
				<p>
					$(&#8216;p.submit input.button&#8217;) の 2 種類はわかるよ！ attr は該当の input に disabled=&#8221;disabled&#8221; という属性値を設定するということ、removeAttr はその属性値を削除するということ。<br />
					でも ( flag.status ) と書いただけで「すべての評価が true だったら?」なんて指定ができるのかがわからん。
				</p>
				<h2>
					一通り調べてみたけど<br />
				</h2>
				<p>
					よくわからないことに変わりはなかったようだ(´･ω･`)<br />
					以下、もうちょっと調べてみてわかったこと。
				</p>
				<dl>
				<dt>
						オブジェクトってなんだ？
					</dt>
				<dd>
				<p>
							this.checkColorValue は colorChange.checkColorValue と同じことですよね。<br />
							flag.valid は変数 flag の中の valid ってこと？
						</p>
				<p>
							ググってたら見つけて解決しつつある。<br />
							マークアップエンジニア、デザイナー向けJavaScript入門 ? SlideShare <a href="http://www.slideshare.net/ukstudio/javascript/16">16 ページ</a>と <a href="http://www.slideshare.net/ukstudio/javascript/17">17 ページ</a>
						</p>
				</dd>
				<dt>
						prototype について
					</dt>
				<dd>
				<p>
							前述のスライド <a href="http://www.slideshare.net/ukstudio/javascript/20">20 ページ</a>に「 prototype 」という概念について調べるといいよと書いてあったので早速ググる。			</p>
				<p>
							<a href="http://codezine.jp/a/article.aspx?aid=222#s03">プロトタイプ（prototype）によるJavaScriptのオブジェクト指向 &#8211; 暗黙の参照：CodeZine</a><br />
							これだっ！ function( a ) の中で a.fromElement と指定してどうして  var roll の中身が取り出せるの？という疑問が解決した！のかな？
						</p>
				</dd>
				</dl>
				<p>
					全く関係ないけど本文中に半角の &#8216; (シングルクォート) や &#8221; (ダブルクォート) を書くと勝手に全角に変換されてしまう。WordPress の機能なのか、テンプレートの作り方が悪いのか。
				</p>
				<p>
					今回のやつを作ろうと考えたときはこんな大掛かりなことになるとは思っていなかったのですが、新しいことを覚える楽しさと、動いたらきっとうれしいぞ！という妄想で完成させたいと思います(`･ω･´)</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/05/04/174505/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE 6 で透過 png を表示する「PNG-TR」</title>
		<link>http://p15.jp/2008/04/22/183713</link>
		<comments>http://p15.jp/2008/04/22/183713#comments</comments>
		<pubDate>Tue, 22 Apr 2008 09:37:13 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=212</guid>
		<description><![CDATA[以前から IE 6 で透過 png を表示したいときに愛用していた iepngfix.js がバージョンアップしていました。 帰って来た IEPNGFIX 改め PNG-TR &#124; YungSang&#8217;s PNG [...]]]></description>
			<content:encoded><![CDATA[				<p>
					以前から IE 6 で透過 png を表示したいときに愛用していた <a href="http://blog.l-xs.com/yungsang/2006/12/png_alpha_filter_ie7.html" title="ユンサンの／???／YungSang's: 透過PNG と IE と IE7">iepngfix.js</a> がバージョンアップしていました。
				</p>
				<ul>
				<li>
						<a href="http://blog.yungsang.com/2008/03/15/iepngfix-pngtr/">帰って来た IEPNGFIX 改め PNG-TR | YungSang&#8217;s</a>
					</li>
				<li>
						<a href="http://groups.google.com/group/png-tr">PNG-TR | Google グループ</a>
					</li>
				</ul>
				<p>
					私的注目機能は iepngfix.js だと png 画像が要素のサイズに合わせて拡大・縮小されていたのですが、PNG-TR では behavior の指定方法が 3 種類 (後方互換も含めると 4 種類) 用意されており、画像のサイズを維持して表示することもできます。
				</p>
				<p>
					何ができるようになったのかというと、例えばリストアイコンとか要素のサイズは横幅いっぱいだけど画像サイズは 15 x 15 なんていうとき、iepngfix.js では無惨に拡大された画像に胸を打ち砕かれ諦めるしかなかったのですが、PNG-TR を使うとハッピーターンを 10 袋大人買いしたようなうれしさでいっぱいになりますヽ(・ω・)ﾉ
				</p>
			</div>
			<div class="text more" id="more212">
				<p>
					但し、できないこともいくつかあって、background-repeat や background-position は効かないし、PNG-TR で指定した要素が position: relative; もしくは position: absolute; だった場合はその子孫要素でリンクが効かなくなってしまいます。<br />
					詳しくは <a href="http://groups.google.com/group/png-tr/web/notes">Notes（注意／制限事項） &#8211; PNG-TR | Google グループ</a> に書かれています。
				</p>
				<p>
					例えばヘッダの背景を透過 png にしよう！ヘッダ内の要素のレイアウトには position: absolute; を使うよ！なんてときは #header { position: relative; } などとして基準の位置を定めたりしますが、このままではリンクが効かないのでヘッダの position は指定せず、ヘッダ内の要素は float や margin などで工夫してレイアウトする必要があります。
				</p>
				<p>
					IE 6 のためにそこまで頑張る必要はあるの？って話は置いといて、まだまだ完全に切り捨てることのできない IE 6 対策として iepngfix.js に代わって愛用させていただきたいと思います！</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/04/22/183713/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>任意のリンクに favicon を表示する jQuery プラグイン</title>
		<link>http://p15.jp/2008/04/19/021543</link>
		<comments>http://p15.jp/2008/04/19/021543#comments</comments>
		<pubDate>Fri, 18 Apr 2008 17:15:43 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[favicon]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=209</guid>
		<description><![CDATA[About のページを更新しました。ページ右上の ？ をクリックしてみてください。 自己紹介として是非掲載したいと思ったのが、自分のサイトや各種利用ツールへのリンク。 リストアイコンのように favicon を表示してみ [...]]]></description>
			<content:encoded><![CDATA[				<p>
					<a href="http://p15.jp/about">About</a> のページを更新しました。ページ右上の ？ をクリックしてみてください。
				</p>
				<p>
					自己紹介として是非掲載したいと思ったのが、自分のサイトや各種利用ツールへのリンク。<br />
					リストアイコンのように favicon を表示してみたくて探したところ発見しました。<br />
					<a href="http://jigen.aruko.net/memo/faviconapi/libjquery/">favicon API javascriptライブラリ [jQueryプラグイン] | jigelog</a><br />
					<a href="http://jigen.aruko.net/memo/faviconapi/libjs/" title="favicon API javascriptライブラリ | jigelog">jQuery を使わない通常版</a>もありましたが、すでに jQuery を利用しているのでこちらのプラグインを使わせていただくことに。
				</p>
				<p>
					もう jQuery も怖くないので、大体何が書いてあるのかわかりましたヽ(・ω・)ﾉ<br />
					使い方も簡単で、普通のリンクに class=&#8221;（任意の class 名）&#8221; をつけるだけ。私は class=&#8221;favicon&#8221; としました。<br />
					こんなかんじ。<a href="http://p15.jp/about" class="favicon">About のページにいっぱいあるよ！</a>
				</p>
			</div>
			<div class="text more" id="more209">
				<p>
					こうやって favicon が並ぶと favicon がないサイトはさみしい感じがしますねー。掘っ立てとか掘っ立てとか掘っ立てとか。ね、トルさん。<ins datetime="2008-04-21T18:36:00+09:00">掘っ立て favicon ついた！トルさんありがとうあいしてらス！</ins><br />
					あと nowa もトップページではめんこい favicon が表示されますが、各ユーザのページには表示されませんでした(´･ω･`)</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/04/19/021543/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery の書き方メモ</title>
		<link>http://p15.jp/2008/04/17/181337</link>
		<comments>http://p15.jp/2008/04/17/181337#comments</comments>
		<pubDate>Thu, 17 Apr 2008 09:13:37 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://p15.jp/?p=20</guid>
		<description><![CDATA[miniturbo 先生にテンプレートでけたよ！とご報告したところ、早速厳しいチェックが入りました。 彼は、私が初めて jQuery を触ってよろこんでいたときにステキなお祝いをくれた方です。 for( ; ; ){al [...]]]></description>
			<content:encoded><![CDATA[				<p>
					<a href="http://miniturbo.org/">miniturbo 先生</a>にテンプレートでけたよ！とご報告したところ、早速厳しいチェックが入りました。<br />
					彼は、私が初めて jQuery を触ってよろこんでいたときにステキなお祝いをくれた方です。
				</p>
				<pre title="これはひどい"><code>for( ; ; ){alert('Hello world !')}</code></pre>
<p>
	それと <a href="http://spais.jp/">nic 先生</a>から聞いた話をメモ。
</p>
			</div>
			<div class="text more" id="more20">
<h2>
	最初に自分で書いたもの<br />
</h2>
<pre title="最初に自分で書いたコード"><code>$('#navigation').hide()
&#9;.css('position', 'fixed')
&#9;.css('right', '0')
&#9;.css('bottom', '0')
&#9;.css('width', '0')
&#9;.css('height', '85px'); （以下略）</code></pre>
				<p>
					同じ #navigation に対する指定だから省略して書けることを知って満足していました。
				</p>
				<h2>
					miniturbo 先生の指摘を受けて直したもの<br />
				</h2>
				<pre title="miniturbo 先生の指摘を受けて書き直したコード"><code>$('#navigation').hide()
&#9;.css({
&#9;&#9;position: 'fixed',
&#9;&#9;right: '0',
&#9;&#9;bottom: '0',
&#9;&#9;width: '0',
&#9;&#9;height: '85px'
&#9;}); （以下略）</code></pre>
				<p>
					先生曰く、「たぶん.css()を何回も読み出すよりオブジェクトで一気に渡した方がちょっとだけはやいと思う」とのこと。<br />
					オブジェクトってのは {} のことですってよ。<br />
					見た目もより CSS っぽくなって、書きやすいし読みやすいヽ(・ω・)ﾉ
				</p>
				<p>
					こっそり白状すると functions.php の半分は <a href="http://miniturbo.org/category/web/wp/vicuna">miniturbo 先生謹製のハック</a>でできています。<br />
					そのうち解読して自分用に書き直してみたい！そのためには正規表現を覚えないとだな(´･ω･`)
				</p>
				<h2>
					toggle は便利だけど・・・<br />
				</h2>
				<p>
					nic 先生からもぽろっと、ためになりそうなお話をいただきました。<br />
					今回のコードは toggle を使って、右下の ！ 部分（ p.naviOpen ）をクリックする度に処理が切り替わるようになっているのですが、クリックした回数分実行されるので連打するとガクガクプルプルしてしまいます。（よい子は試してみちゃダメ！）
				</p>
				<pre title="click を使った例"><code>$('p.naviOpen').click(function(){
&#9;if($(this).css('display') == 'block'){</code></pre>
				<p>
					例えば上記のようにしたら表示されているときか・表示されていないときか指定することができるので、toggle はお手軽だけど場合によっては別の方法がいいかもしれないねー、とのこと。<br />
					ちなみに <a href="http://spais.jp/">nic 先生のところ</a>は click でやってるので、高橋名人もびっくりな連射をしても大丈夫でした。<br />
					このうにょ?んに憧れて jQuery を覚えたんだよなー。
				</p>
				<p>
					それと nic 先生の提案でナビゲーション部分を半透明にしてみましたヽ(・ω・)ﾉ</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/04/17/181337/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Analytics でうにょーんがもさもさ</title>
		<link>http://p15.jp/2008/03/01/181345</link>
		<comments>http://p15.jp/2008/03/01/181345#comments</comments>
		<pubDate>Sat, 01 Mar 2008 09:13:45 +0000</pubDate>
		<dc:creator>石澤 りん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ウェブサービス]]></category>

		<guid isPermaLink="false">http://p15.jp/2008/03/01/181345</guid>
		<description><![CDATA[これはすごいと噂の Google Analytics を使ってみることにしました。今さらジロー。 サイトの登録までは簡単にできたのですが、トラッキングコードを挿入したところで問題が発生。 難しいことはよくわからんのですが [...]]]></description>
			<content:encoded><![CDATA[				<p>これはすごいと噂の <a href="http://www.google.com/analytics/ja-JP/">Google Analytics</a> を使ってみることにしました。今さらジロー。</p>
				<p>サイトの登録までは簡単にできたのですが、トラッキングコードを挿入したところで問題が発生。<br />
				難しいことはよくわからんのですが、ナビゲーションをうにょーんと開閉するやつは通常表示されているものが JavaScript を読み込むことによって非表示に、Navigation Open をクリックすると表示されます。<br />
				ところが nicせんせーによると onLoad がどうのこうので、Google Analytics のコードも読み込みしてから非表示になるので数秒間ナビゲーションが表示されてしまうようになってしまいました。</p>
				<p>これを回避するには JavaScript の読み込みに優先順位をつけたらいいんじゃないかということで、以下がヒントになるかもとのこと。<br />
				<a href="http://d.hatena.ne.jp/holidays-l/20070923/p1">JavaScriptで外部ライブラリを読み込むためのスクリプトをCodeRepos.orgに上げた。 &#8211; holidays-l開発ブログ</a><br />
				jQuery とナビゲーションうにょーん.js を先に、Google Analytics のコードを後に読み込めばいいってところまではわかったけど、実際やってみるとなかなかうまくいきません。<br />
				ちょっとかっちょ悪いですがスルー願います＞＜</p>
]]></content:encoded>
			<wfw:commentRss>http://p15.jp/2008/03/01/181345/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

