<?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>Re:Creator&#039;s Kansai （リクリ） &#187; class</title>
	<atom:link href="http://www.re-creators.jp/tag/class/feed" rel="self" type="application/rss+xml" />
	<link>http://www.re-creators.jp</link>
	<description>Re:Creator&#039;s Kansai（リクリ）は関西のクリエイターの交流、勉強会・セミナーの開催を目的としたコミュニティです。</description>
	<lastBuildDate>Fri, 27 Jan 2012 10:08:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>第4回 classの制御 &#8211; jQueryによるJavaScript入門</title>
		<link>http://www.re-creators.jp/blog/2008/07/08_51.html</link>
		<comments>http://www.re-creators.jp/blog/2008/07/08_51.html#comments</comments>
		<pubDate>Tue, 08 Jul 2008 12:47:11 +0000</pubDate>
		<dc:creator>西畑 一馬</dc:creator>
				<category><![CDATA[ブログ]]></category>
		<category><![CDATA[addClass]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[removeClass]]></category>

		<guid isPermaLink="false">http://re-creators.weblike.jp/?p=51</guid>
		<description><![CDATA[こんにちわ。to-Rの西畑です。
jQueryによるJavaScript入門,第4回はclassの制御ということで前回のタブパネルをブラッシュアップしていきたいと思います。

前回のタブパネルはcssをすべてjavasc [...]]]></description>
			<content:encoded><![CDATA[<p>こんにちわ。<a href="http://blog.webcreativepark.net/">to-R</a>の西畑です。<br />
<a href="http://www.re-creators.jp/blog/2008/06/24_37.html">jQueryによるJavaScript入門</a>,第4回はclassの制御ということで前回の<a href="http://www.re-creators.jp/blog/2008/07/02_45.html">タブパネル</a>をブラッシュアップしていきたいと思います。</p>
<p><span id="more-51"></span></p>
<p>前回のタブパネルはcssをすべてjavascriptで制御していましたが、これはjavascript的にはあまり綺麗な書き方ではありません。</p>
<p>タブのデザインが変更された場合、javascriptソースを大幅に変更をしなくてはいけなくなるためです。</p>
<p>javascriptでは振る舞いに関する記述を行い、装飾やデザインはなるべくスタイルシートで制御したほうが、修正の際に更新が容易になります。</p>
<p>そのために利用するのがclassの制御するめに利用する2つのjQuery関数、addClassとremoveClassです。</p>
<p><strong>addClass</strong></p>
<p>$(&#8221;class名を追加したい要素のCSSセレクタ&#8221;).addClass(&#8221;追加したいclass名&#8221;);</p>
<p>という感じで、記述します。</p>
<p><a href="http://blog.webcreativepark.net/sample/jQuery/sample15.html">addClassのサンプル</a></p>
<p>input要素がクリックされた際にh1要素に『addClass』というclass名を付加するサンプルになります。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;h1&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">addClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;addClass&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><strong>removeClass</strong></p>
<p>$(&#8221;class名を削除したい要素のCSSセレクタ&#8221;).removeClass(&#8221;削除したいclass名&#8221;);</p>
<p><a href="http://blog.webcreativepark.net/sample/jQuery/sample16.html">removeClassのサンプル</a></p>
<p>input要素がクリックされた際にh1要素から『removeClass』というclass名を取り除くするサンプルになります。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;input&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;h1&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">removeClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;removeClass&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p><strong>classの制御</strong></p>
<p>それでは<a href="http://blog.webcreativepark.net/sample/jQuery/sample14.html">タブパネルのサンプル</a>に修正を加えていきたいと思います。</p>
<p>まずは各タブがクリックされた際の処理。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;border-bottom&quot;</span>,<span style="color: #3366CC;">&quot;1px solid #EEEEEE&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;background&quot;</span>,<span style="color: #3366CC;">&quot;#EEEEEE&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.panel li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span>,<span style="color: #3366CC;">&quot;block&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>ここでデザインを制御しているのは2行目のborder-bottomと3行目のbackgroundになります。</p>
<p>class名に関しては、選択状態用のclass『selected』がすでに用意されていますので、このclass名をつけるようにします。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;li.tab_a&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">addClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>tab_b以下のタブも同様に変更します。</p>
<p>また、選択状態を取り外す記述の処理</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;border&quot;</span>,<span style="color: #3366CC;">&quot;1px solid #999999&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;background&quot;</span>,<span style="color: #3366CC;">&quot;#DDDDDD&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.panel li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span>,<span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>は以下のように修正します。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.tab li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">removeClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;selected&quot;</span><span style="color: #66cc66;">&#41;</span>;
	$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.panel li&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span>,<span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>これで終了です。</p>
<p><a href="http://blog.webcreativepark.net/sample/jQuery/sample17.html">サンプル</a></p>
<p><a href="http://blog.webcreativepark.net/sample/jQuery/sample14.html">変更前</a>と比べていただいたらわかると思いますがソースコードの量も減っていますし、デザインの変更は.selectedのCSSを変更するだけで可能です。</p>
<h2>JavaScript OFF環境も考慮する</h2>
<p>さて少しJavaScript OFF環境もしてみましょう。</p>
<p>現在、JavaScript OFFの環境でサンプルのソースに訪れるとトピックス以外の項目を見ることができません。</p>
<p>JavaScript OFFもどこまで対応するか好みが別れるところですが、個人的にはJavaScript OFFでも可能な限り情報の閲覧は出来るべきであると考えています。</p>
<p>デフォルトのCSSを変更します</p>

<div class="wp_syntax"><div class="code"><pre class="css"><span style="color: #6666ff;">.panel</span> li<span style="color: #66cc66;">&#123;</span>
	display<span style="color: #3333ff;">:none</span><span style="color: #66cc66;">;</span>
	clear<span style="color: #3333ff;">:both</span><span style="color: #66cc66;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #66cc66;">:</span><span style="color: #cc00cc;">#EEEEEE</span><span style="color: #66cc66;">;</span>
	border<span style="color: #3333ff;">:<span style="color: #933;">1px</span></span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#<span style="color: #933;">999999</span></span><span style="color: #66cc66;">;</span>
	padding<span style="color: #3333ff;">:<span style="color: #933;">10px</span></span><span style="color: #66cc66;">;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>を以下のように修正します。</p>

<div class="wp_syntax"><div class="code"><pre class="css"><span style="color: #6666ff;">.panel</span> li<span style="color: #66cc66;">&#123;</span>
	clear<span style="color: #3333ff;">:both</span><span style="color: #66cc66;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #66cc66;">:</span><span style="color: #cc00cc;">#EEEEEE</span><span style="color: #66cc66;">;</span>
	border<span style="color: #3333ff;">:<span style="color: #933;">1px</span></span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#<span style="color: #933;">999999</span></span><span style="color: #66cc66;">;</span>
	padding<span style="color: #3333ff;">:<span style="color: #933;">10px</span></span><span style="color: #66cc66;">;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>display:none;を取り除くことによりJavaScript OFFの方でも情報へのアクセスが可能になります。</p>
<p>JavaScript　ON環境のためにタブパネル用のスタイルはJavaScript用のスタイルはJavaScript上で記述します。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;.panel li:not(.tab_a)&quot;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">css</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;display&quot;</span>,<span style="color: #3366CC;">&quot;none&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>CSS3セレクタのnot擬似クラスを利用してクラス名がtab_a以外のパネルを非表示にしています。</p>
<p><a href="http://blog.webcreativepark.net/sample/jQuery/sample18.html">サンプル</a></p>
<p>JavaScript OFF環境にどこまで対応するかも好みが分かれるところですが。参考までに</p>
<p><a href="http://www.amazon.co.jp/o/ASIN/4839929734/tor0-22/ref=nosim">【PR】書籍 現場のプロから学ぶXHTML+CSS 好評発売中</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.re-creators.jp/blog/2008/07/08_51.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

