English | Japanese
Download (2.61KB)
Compression :

Overview

jQuery 3ステートスイッチ プラグイン(J3SSW)は、ラジオボタンの選択/未選択 と チェックボックスのON/OFF の組み合わせによって、リスト項目の選択と項目の状態を同時に表現する jQueryのプラグインです。
ソートキーや、検索のフィルタリングのインターフェースに使用できます。

J3SSWを理解するために、 上のExampleタブをクリックして動作を確認してください。

Example

1.1ステート (通常のラジオボタン)
view source
	$("div#state3-mode1").j3ssw({off:"state3down-sort", on:"state3up-sort", def:"state3def-sort", callback:listener1, mode:1});
	function listener1(selection, status){
		$("div.trace").eq(0).empty().append(selection + " : " + (status?"Z-A":"A-Z"));
	}
2.2ステート (例:ソートキーなど)
view source
	$("div#state3-mode2").j3ssw({off:"state3down-sort", on:"state3up-sort", def:"state3def-sort", callback:listener2, mode:2});
	function listener2(selection, status){
		$("div.trace").eq(1).empty().append(selection + " : " + (status?"Z-A":"A-Z"));
	}
3.3ステート (例:3ステートソートキーなど)
view source
	$("div#state3-mode3").j3ssw({off:"state3down-sort", on:"state3up-sort", def:"state3def-sort", callback:listener3, mode:3});
	function listener3(selection, status){
		$("div.trace").eq(2).empty().append(selection + " : " + (status?"Z-A":"A-Z"));
	}
4.3ステートマルチ (例:マルチカラムの検索フィルターなど)
view source


$("div#state3-mode3multi1").j3ssw({off:"state3down-filter", on:"state3up-filter", def:"state3def-filter", callback:listener4, mode:3, status:true});
$("div#state3-mode3multi2").j3ssw({off:"state3down-filter", on:"state3up-filter", def:"state3def-filter", callback:listener4, mode:3, index:-1});
$("div#state3-mode3multi3").j3ssw({off:"state3down-filter", on:"state3up-filter", def:"state3def-filter", callback:listener4, mode:3});
function listener4(selection, status, id, j3ssw){
	if(id == "state3-mode3multi1")$("span#trace4span").empty().append(j3ssw.getSelection() + " : " + (j3ssw.getStatus()?"Contain":"Not Contain"));
	if(id == "state3-mode3multi2")$("span#trace5span").empty().append(j3ssw.getSelection() + " : " + (j3ssw.getStatus()?"Contain":"Not Contain"));
	if(id == "state3-mode3multi3")$("span#trace6span").empty().append(j3ssw.getSelection() + " : " + (j3ssw.getStatus()?"Contain":"Not Contain"));
}

Usage

1.Setup

jQuery 3ステートスイッチ プラグイン(J3SSW)は、jQuery というJavaScriptライブラリのみを使用します。 J3SSWを使用するには、以下の2つのJavaScriptファイルをヘッダーに追加します。

<script type="text/javascript" src="./js/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="./js/jquery.j3ssw.js"></script>

J3SSWを構成するスイッチのスタイルを定義したCSSファイルをヘッダーに追加します。

<link rel="stylesheet" type="text/css" href="./css/jquery.j3ssw.css" media="screen" />
2.Markup

J3SSWでは、ラジオボタンを元にスイッチを生成します。
ですから、元のラジオボタンをマークアップする必要があります。
ラジオボタンを配置するためのdivタグとラジオボタンのクリックエリアとしてラベルを用意します。
実際にはラベルにスイッチのスタイルが割り当てられます。

必要なタグと属性

   div : id
   label : for
   radio : id, name, value

<div id="j3ssw">
	<label for="mode1-1"><input type="radio" id="mode1-1" name="mode1-radio" value="Product">Product</label>
	<label for="mode1-2"><input type="radio" id="mode1-2" name="mode1-radio" value="Price">Price</label>
	<label for="mode1-3"><input type="radio" id="mode1-3" name="mode1-radio" value="Brand">Brand</label>
</div>
3.Initialize

J3SSWを動作させるために、DOM構築後にJ3SSWを初期化します。
初期化では、ラジオボタンのコンテナとなるdivタグ要素をセレクタのターゲットとします。
必要があれば設定オブジェクトを渡すこともできます。

<script type="text/javascript">
	<!--
	$(document).ready(function() {
		$("#j3ssw").j3ssw();
	}
	//-->
</script>
4.Complete

以上で、J3SSWを実装できました。
実装のバリエーションはExampleタブやExtendタブをクリックして、いろいろなサンプルを試してみてください。

Extend

設定オブジェクト
jQuery 3ステートスイッチ プラグイン(J3SSW)では、初期化の際に設定オブジェクトを渡すことで、 動作をカスタマイズすることができます。
設定できるオブジェクトの各項目は以下の通りです。

  • index - 初期時に選択されている項目のインデックス(0オリジン)、デフォルトは0
  • status - 初期時に選択されている項目の状態(ブール値)、デフォルトはfalse
  • def - 未選択状態のスタイル名、デフォルトは"j3sswdef"
  • off - OFF状態のスタイル名、デフォルトは"j3sswoff"
  • on - ON状態のスタイル名、デフォルトは"j3sswon"
  • mode - 選択モードの指定、デフォルトは2
    • 1 : 選択した項目は1種類の状態を持ちます。通常のラジオボタンです
    • 2 : 選択した項目はクリックによって、true/falseの2種類の状態を切り替えられます。
    • 3 : 選択した項目はクリックによって、true/false/未選択の3種類の状態を切り替えられます。
  • callback - 選択状態に変化があった場合に呼び出されるコールバック関数の参照
    引数は以下の通り。
    • selection : 選択したラジオボタン項目のvalue属性(選択項目がない場合はundefined)
    • status : 選択したラジオボタン項目の状態(true/false)。
    • id : 変更があったJ3SSWオブジェクトのDOMのID属性
    • j3ssw : 変更があったJ3SSWオブジェクト

メソッド
jQuery 3ステートスイッチ プラグイン(J3SSW)には、以下の2つのパブリックメソッドがあります。

  • getSelection() - 現在選択されているラジオボタン項目のvalue属性(選択項目がない場合はundefined)
  • getStatus() - 選択したラジオボタン項目の状態(true/false)

<script type="text/javascript">
<!--
$(document).ready(function() {
	//設定つきで初期化
	var j3ssw001 = $("#filter001").j3ssw({index:2,
						status:true,
						def:"state3def-filter", 
						off:"state3down-filter", 
						on:"state3up-filter", 
						mode:3, 
						callback:listener001});
	//コールバック関数
	function listener001(selection, status, id, j3ssw){
		alert(selection + " : " + status);
	}
	//コールバック以外で状態を取得する場合
	$("#showStateButton001").click(function(){j3ssw001.getSelection() + " : " + j3ssw001.getStatus()});

}
//-->
</script>

Changelog

Version 0.1 October 10, 2008

Initial release.

Feedback

このプラグインについて、意見、要望がありましたら以下のフォームに投稿してください。
http://j3ssw.tumblr.com/に送信されます。
あなたがTumblrアカウントを持っている場合は、
http://memorycraft.tumblr.com/宛てに直接コメントをもらえるとうれしいです。

Thank you!