ラウンジ(兼FAQ掲示板)

ツリー式メニュー フォルダにリンクを貼りたい
過去ログ NO.1140928467
□ ふたば [2006年02月24日18時41分]
ツリー式メニューについて質問します。

フォルダ以下のファイルからしか、リンクページに飛べませんが、親リストなどのフォルダ部分からも、リンクページに飛ぶように改造することは可能でしょうか?

list = new Array();
list[0] = ",親リスト1";         ←ココ
list[1] = "0,親リスト1-1";        ←ココ
list[2] = "1,親リスト1-1-1";
list[3] = "2,link:1-1-1-1,1-1-1-1.html";
list[4] = "2,link:1-1-1-2,1-1-1-2.html";
list[5] = "2,link:1-1-1-3,1-1-1-3.html";

以前に同じ質問があったようですが、回答がなかったので、再質問させて頂きました。ムリならムリで諦めますので、ご助言お願いします<(_ _)>
□ NXer [2006年02月24日22時57分]

はじめまして。NXerです。

>可能でしょうか?

可能です。すえぽんさんの原作の変更例です。
----------------------------------------
元 list[12] = "9,link:1-2-3,1-2-3.html";
新 list[12] = ",link:1-2-3,1-2-3.html";
---------------------------------------------

ここまでの動作結果です。
ホーム
...|-親リスト1
...|-link:1-2-3.html
...|-親リスト2


すえぽんさんの説明をお読みください。
--------------------------------------------------説明
/* ツリーに表示する項目
list[x] = "1,2,3";
1.所属する親フォルダの番号 [x](最初から表示しておく項目は空白に)
2.表示する名前
3.リンク先 (空白の場合はフォルダとして扱う)
上の階層から順番に記述すること(記述する順番も重要)
------------------------------------------------------------
三つの項目を、一つ一つ飛ばすことなく、理解いただければ、
次のココの1と2の意味が分かります。
まず、list[0]に、展開するときは親フォルダの番号を入れますが、最初から
表示するから空白(実際は空白はないため分かりにくいですが。)
「親リスト1」が表示する名前です。その後がないことから、フォルダ扱い。
このように正確に読み取ると、list[0〜12]の変更で何がどのように変わる
か、予想できます。あとは予想が当たるかをお試しください。
(なお下手な説明の理解を強制するものではありません。当方のメモです。
読み飛ばしてお試しください。)

list[0] = ",親リスト1";         ←ココの1
list[1] = "0,親リスト1-1";        ←ココの2

◆ココの1について:

上のlist[0]の行は、「,」はコンマで始まります。つまり、最初から表示。
----------------------------------------
新 list[12] = ",link:1-2-3,1-2-3.html";
-----------------------------------------
変更したlist[12]もコンマではじめることにより、最初から
画面に表示されています。

◆ココの2について:
----------------------------------------
元list[11] = "9,link:1-2-2,1-2-2.html";
新list[11] = "0,link:1-2-2,1-2-2.html";
-----------------------------------------

ホーム
...|-親リスト1  ・・・初めから表示
...|....|-親リスト1-1
...|....|-親リスト1-2
...|....|-link:1-2-2.html・・親リスト1を開くと展開
...|-link:1-2-3.html・・・初めから表示
...|-親リスト2・・・初めから表示

以上です。
□ ふたば [2006年02月25日00時21分]
NXer様 ご説明ありがとうございました。
私の質問の仕方が下手くそだったのかと思いますが、

--------------------------------------------------説明
/* ツリーに表示する項目
list[x] = "1,2,3";
1.所属する親フォルダの番号 [x](最初から表示しておく項目は空白に)
2.表示する名前
3.リンク先 (空白の場合はフォルダとして扱う)
上の階層から順番に記述すること(記述する順番も重要)
------------------------------------------------------------
この書き方に則して考えた場合、親リストのフォルダからリンクを貼りたいと考えたので、以下のように書いてみました。

list = new Array();
list[0] = ",親リスト1,1.html"; ←リンク先を指定
list[1] = "0,親リスト1-1,1-1.html"; ←リンク先を指定
list[2] = "1,親リスト1-1-1,1-1-1.html"; ←リンク先を指定
list[3] = "2,link:1-1-1-1,1-1-1-1.html";
list[4] = "2,link:1-1-1-2,1-1-1-2.html";
list[5] = "2,link:1-1-1-3,1-1-1-3.html";


動作を確認してみると、エラーが出てツリー自体が表示されませんでした。

上記の場合、親フォルダからリンク指定できるファイルまで4階層あるわけですが、親フォルダを含めて、2階層、3階層からも、直接ページへ飛べるリンクが貼れないものでしょうか?

> ホーム
> ...|-親リスト1  ・・・初めから表示 ←ここからリンク先に飛びたい
> ...|....|-親リスト1-1        ←ここからリンク先に飛びたい
> ...|....|-親リスト1-2        ←ここからリンク先に飛びたい
> ...|....|-link:1-2-2.html・・親リスト1を開くと展開
> ...|-link:1-2-3.html・・・初めから表示
> ...|-親リスト2・・・初めから表示   ←ここからリンク先に飛びたい



ソフトのヘルプ画面でよくみかけるように、フォルダの展開は+−ボタンでできて、タイトルテキストにはリンクが貼ってあって各ページに飛べる状態のツリーメニューを希望しています。

リンクの指定方法の問題ではなく、このメニューの元々の仕様なのだと思ったので「改造」できないのかな?と思い、質問してみました。


うーん…説明がヘタですみません。
□ NXer [2006年02月25日17時50分]

>うーん…説明が

上手くできない理由の一つに、ことばは考えるほど複雑な内容を伝える
ことができないことがあると思います。NXerです。

すえぽんさの原作や説明用語を変えないで当方の愚考をお伝えしていますが、
-----------------------
list[x] = "1,2,3";
------------------------
のlist[x]には2重の意味があります。

一つは、.htmlファイルの配列変数です。

他の一つは、フォルダという機能です。

3つ目の要素を欠く次の例です。

list[x]( ,2) ・・・最初から表示のフォルダ
list[x](1,2) フォルダから展開して表示するフォルダ

,3 が記述されていない、これら二つの配列変数は、フォルダ
です。このフォルダの機能には、

下位のフォルダだけを含む
下位のフォルダとリンク先ページ.htmlファイルを含む

(ただし、2の位置は名称が入り、そこに.htmlファイルが入ると、
ふたばさんのテストのようにjavascriptはメニュを展開できなくて
エラーになり、ツリーが表示されないと思われます。)

当方の愚案はリンク先ファイルを含むフォルダを使います。
(そのファイルがふたばさんの「ここから飛びたい」に当たるもの。)

機能面(◇)を補い、何ができるのか、また、できないのかについて、下の図を
使い愚考を重ねてみます。

> ホーム
> ...|-親リスト1(◇正しくはフォルダ)・・初めから表示 ←ここからリンク先に飛びたい●
> ...|....|-親リスト1-1(◇フォルダ)←ここからリンク先に飛びたい▲
> ...|....|-親リスト1-2(◇フォルダ)←ここからリンク先に飛びたい
> ...|....|-link:1-2-2.html・・親リスト1を開くと展開(これがふたばさんの▲)
> ...|-link:1-2-3.html・・・初めから表示(●これがふたばさんのリンク先に飛ばすページ)
> ...|-親リスト2(◇フォルダ)・・・初めから表示 ←ここからリンク先に飛びたい
   その時はフォルダに下位のフォルダとリンク先のhtmlを上の例のように作成します。

ツリー式メニュの展開の目的が、階層的にリンク先ページの展開することです。
各階層化の機能はフォルダが果たします。上述の通り、

フォルダはフォルダだけでもよいし、
リンク先ページのhtmlファイルを含むフォルダでもよいようです。

前の投稿で、すでにその例をお示ししたつもりです。原作やその説明を利用
しているために1-2-3.htmlなどとそのままにしましたが、少し変えてみます。
---------------------------------------例
1-2-3.html  ・・・・・・・・・・・・元
hello.html・・・・・新 たぶんこれが飛びたいリンク先にあたります。
-----------------------------------------

もう一度、表示の親リスト1(フォルダ)とリンク先の名称
を見直してみます。
----------------------------------------例
元 list[0] = ",親リスト1";  
新 list[0] = ",パピヨン";  (フォルダ名を仮に犬の種名とします)
元 list[12] = "9,link:1-2-3,1-2-3.html";
新 list[12] = ",link:こんにちわ,hello.html";(初めから表示のため9は削除)
元 list[13] = ",親リスト2";
新 list[13] = ",秋田犬";
--------------------list番号がずれると線やアイコン文字が残り重なります。

ホーム
...|-パピヨン(◇フォルダ、未展開の下位のフォルダやファイルを含む)
...|-link:こんにちわ (リンク先は、「hello.html」)
...|-秋田犬(◇フォルダ、未展開の下位のフォルダやファイルを含む)
と表示されます。

>飛べる状態のツリーメニューを希望しています。

上記以外にも類似のメニュなどを見ることができるウェブサイトを探してください。
それらがjavascriptで記述されている場合はブラウザの表示--ソースで、スクリプ
トを知ることが出来ますから、よりご希望に近いメニュを作ることが出来ると思い
ます。
□ ふたば [2006年02月26日13時34分]
ご助言ありがとうございました。

別のサイトを探してみて、勉強してみます。
一定時間書込が無かったので過去ログに移りました

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.