ラウンジ(兼FAQ掲示板)

ツリー形式メニューについて教えて下さい
過去ログ NO.1141892578
□ まみ [2006年03月09日11時15分]

http://jsm.suepon.com/script/jsm30.html
を拝見致しました。
とてもきれいに作られているので、是非利用させて頂きたいと
思います。

さて、こちらのソース内では、下記のように
配列を作成して、それぞれにフォルダやリンク先を入れていますが
配列数が何百となった場合で、項目を追加・削除する必要が頻繁に生じる
場合には、大変な修正となると思います。
よって、『親リスト1』単位くらいに配列を作成し、メンテナンスを楽に
したいのですが、可能なのでしょうか。
list2 = new array();を作成しましたが、表示されませんでした。

ご存知の方がいらっしゃったら教えて下さい。

----------------------------------------------
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年03月09日17時22分]

はじめまして。NXerです。

>list2 = new array();を作成しましたが、表示されませんでした。

javascriptは、サーバを使わずにコンピュータ上で動作します。
そのために、まみさんは上の変更をされましたが、配列は
list[0]のままの場合、配列変数が競合して動作しないかもしれ
ません。

そこで当方は次のように変更してみました。

その1)
1.1 すえぽんさんの原作のlist[3]のファイル名変更します。
1.2 同じディレクトリにparent1.htmlというファイルを
作成して転送保存しておきます。そのファイルはすえぽんさん
の原作を変更2のように作成します。

変更1 ------------------------------------配列名list
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,parent1.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";
---------------------------------------------
変更2---------------------------------------配列名list1
list1 = new Array();
list1[0] = ",親リスト1";
list1[1] = "0,親リスト1-1";
list1[2] = "1,親リスト1-1-1";
list1[3] = "2,link:1-1-1-1,parent2.html";・さらにファイル名変更
list1[4] = "2,link:1-1-1-2,1-1-1-2.html";
list1[5] = "2,link:1-1-1-3,1-1-1-3.html";
---------------------------------------------

作業メモ:エディタの置換機能を使います。

検索 list
置換 list1

で全置換をすると、次の画像ファイルを共有する時は
たとえば、OSがウィンドウズである場合は、
----------------------------------------
/* Icon for Win */
home_win = dir + "home_win.gif";
close_win = dir + "close_win.gif"
open_win = dir + "open_win.gif";
list_win = dir + "list_win.gif";  ←このgifファイル名
------------------------------------------
最下段の行を
list1_win = dir + "list1_win.gif";
と過剰に置換しますから、
list1_win = dir + "list_win.gif";
とgifファイル名だけを後から元に戻す必要があります。

pl = list1[i].split(",");
などは、元に戻すと逆に競合が発生すると思われます。

結果です。

最初はすえぽんさんとparent1.htmlという名前以外は同じメ
ニューが表示されますが、parent1.htmlをクリックすると、
同一画面サイズでparent2.htmlを含むメニュが表示されました。

応用編:
1 parent2.htmlに同じようにlist2,,,の配列をいれると
さらに深い階層に展開します。深すぎる時は、通常のファイル
に代えてください。

2 今回は親画面と同一にしましたが、これをさらにインライン
フレームなどに変更すると、おそらくフィギャースケートの
イナバウアー・クラスのツリー式メニューになるものと勝手に
評価しています。

まみさん、ウェブ上にて華麗なジャンプに挑戦してください。
『ノーミスをする(ミスしない)/make no mistake』のは
ウェブ・プログラミングでも難しいことです。

一定時間書込が無かったので過去ログに移りました

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

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