TopJavaScript > ツリー表示 JavaScript 「dTree」詳解
2007年6月26日

ツリー表示 JavaScript 「dTree」詳解

Posted at June 26,2007 2:27 AM
Category:[JavaScript]
Tag:[, ]

dTreeのサンプルへ昨日のエントリー「dTree によるサブカテゴリーリスト for Movable Type」でご紹介した dTree の詳細について、本エントリーにて紹介します。例えば、設定によってはエクスプローラー風以外のツリー表示も可能です。

内容は概ね配布サイトの説明を訳したものですが、一部、使用した観点でも記しています。

1.コンフィグレーション

下記の項目を事前に設定しておくことで、dTree の動作や表示をカスタマイズすることができます(具体的な設定の流れは3項参照)。いくつかの項目については配布元の Example のページで確認できます。

変数名デフォルト値説明
targetStringtrue全てのノードの target 属性
folderLinksBooleantruetrue の場合、フォルダ名が通常のリンクになり、false の場合は(フォルダのみ)折りたたみ用リンクになります。
useSelectionBooleantruetrue の場合、選択したノードがハイライト表示されます。
useCookiesBooleantrueツリーの状態保持のためにクッキーを使用
useLinesBooleantruetrue の場合、ツリーを表示します。
useIconsBooleantruetrue の場合、アイコンを描画します。false の場合、「+」と「-」のシンプルなアイコンだけが表示されます。ルートノードのアイコンを非表示にしたい場合はこの設定がお勧め。
useStatusTextBooleanfalsetrue の場合、ステータスバーにURLの代わりにカテゴリー名を表示します(ブラウザ依存)
closeSameLevelBooleanfalsetrue の場合、あるノードを開いた時に、他の同一階層ノードを閉じます。また、openAll() と closeAll() は機能しません。
inOrderBooleanfalse親ノードが常に子ノードより先に add される場合、ツリーのスピードアップをする(注:動作未確認です)

設定例:

mytree.config.target = "mytarget";
mytree.config.useCookies = true;

2.API

add()

概要
ツリーにノードを追加します。ツリーを描画する前に起動してください。id, pid と name は必須です。
パラメータ
名前説明
idNumberツリーの中でユニークな番号
pidNumber参照する親ノード番号。ルート番号は「-1」。
nameStringノード名
urlStringノードの URL
titleStringノードの title 属性
targetStringノードの target 属性
iconStringアイコンを使用する場合の画像ファイル名。設定しない場合はデフォルト画像が使用される。
iconOpenStringアイコン(オープンした時)を使用する場合の画像ファイル名。設定しない場合はデフォルト画像が使用される。
openBooleanノードを開いて表示
例:
mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');

openAll()

概要
全てのノードを開きます。ツリー表示前後どちらでも起動できます。
例:
mytree.openAll();

closeAll()

概要
全てのノードを閉じます。ツリー表示前後どちらでも起動できます。
例:
mytree.closeAll();

openTo()

概要
指定したノードを開くことができます。ツリーが表示された後で起動してください。
パラメータ
名前説明
idNumberノード番号
selectBoolean開いたノードをハイライト表示する
例:
mytree.openTo(4, true);

3.サンプルコード

a = new dTree('a');
a.config.useCookies=false;
a.add(0,-1,'Tree example','javascript: void(0);');
a.add(1, 0,'Node 1','javascript:void(0);');
a.add(2, 1,'Node 2','javascript:void(0);');
a.add(3, 0,'Node 3','javascript:void(0);');
a.add(4, 1,'Node 4','javascript:void(0);');
a.add(5, 2,'Node 5','javascript:void(0);');
a.add(6, 4,'Node 6','javascript:void(0);');
a.add(7, 6,'Node 7','javascript:void(0);');
a.add(8, 6,'Node 8','javascript:void(0);');
a.add(9, 4,'Node 9','javascript:void(0);');
a.add(10, 3,'Node 10','javascript:void(0);');
a.add(11, 1,'Node 11','javascript:void(0);');
a.add(12, 1,'Node 12','javascript:void(0);');
a.add(13, 8,'Node 13','javascript:void(0);');
a.add(14, 11,'Node 14','javascript:void(0);');
document.write(a);

1行目:dTree オブジェクトを生成します。この行は必須です。

a = new dTree('a');

2行目:コンフィグレーションの設定です。ここではクッキーを有効にしています。

a.config.useCookies=false;

3行目:ルートノードの設定です。この行も必須のようです。

a.add(0,-1,'Tree example','javascript: void(0);');

4行目:ノード追加です。パラメータの数字は、自ノード番号「1」で、ルートノード(0)に属することを意味します。

a.add(1, 0,'Node 1','javascript:void(0);');

もうひとつ例を挙げると、16行目の

a.add(13, 8,'Node 13','javascript:void(0);');

は、8番のノードに属することを指しています。

18行目:ツリーを表示します。document.write 以外に innerHTML もOKでした。

document.write(a);

4.CSS

設定されているスタイルは下記の通りです。

.dtree {}
.dtree img {}
.dtree a {}
.dtree a.node, .dtree a.nodeSel {}
.dtree a.node:hover, .dtree a.nodeSel:hover {}
.dtree a.nodeSel {}
.dtree .clip {}
Posted by yujiro
関連記事
人気エントリー
トラックバックURL


コメントする

*必須



お知らせ:2008年5月現在、多忙のため、7月頃までコメントを速やかに回答できない状態が続きます。ご質問の内容によっては回答が7月以降になる可能性がありますので、予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Entries of this Category
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!