アコーディオンを使ったページへ移動した際に、決まった動作をするように処理をしたいのですが、やり方がわかりません。以下のデモを参考にわかる方がいましたら教えて頂けたらと思います。

■デモ
http://www.geocities.jp/qntbd042/

javascript、xml、php等どのような方法でもかまいませんが、こちら側の都合としてはクライアントサイドで処理できる方が助かります。

回答の条件
  • 1人2回まで
  • 登録:2008/02/16 23:24:25
  • 終了:2008/02/23 23:25:02

回答(2件)

id:zebevogue No.1

zebevogue回答回数65ベストアンサー獲得回数72008/02/17 19:52:18

ポイント35pt

ページ変遷後にCSSの header_highlight を div タグに指定してあげれば、

特定の部分をオープンにした状態にできます。

ですので、リンク元index.htmlから画面遷移する際にクッキーなどで押した a タグの id などを保存しておき、

変遷後のページではそのidを使い、JavaScriptもしくはPHPなどで、divタグにheader_highlightを

指定してあげればいいと思います。

protoload.jsですが、使った事はないので割愛します。

id:finnapple

ご回答ありがとうございます。おっしゃる通りこのアコーディオンはページを読み込んだ際、classにheader_highlightが入っているものを開くようになっているようです。こちらの説明不足でしたがjavascriptのdocument.writeで指定箇所にheader_highlightを書き出すやり方は試したのですが、うまくうごきませんでした。

以下参照

http://q.hatena.ne.jp/1202807214

2008/02/18 01:31:21
id:zebevogue No.2

zebevogue回答回数65ベストアンサー獲得回数72008/02/18 14:41:59

ポイント35pt

再回答です。

http://q.hatena.ne.jp/1202807214

の方のものを使って書いてみました。Windows上のIE6/Firefox/Operaで動作確認しました。

index.htmlの方を以下の様にaタグに ?no=数字 を追加します。

この数字は、child.htmlのmenu1-header、menu2-headerの数字と対応させます。

child.htmlに以下のスクリプトを追加します。

function openTab() {
    var str = "";
    //URLの?以降をlocation.searchから取得、正規表現でno=(数値)の数値のみを取得。
    var no = location.search.match(/[?&]no=(\d+)(&|$)/);
    if(no != null){
        no = no[1];
    }
    for(var i = 1; i <= 4; i++){
        var test = "";
        if(i == no) {
            str = 'menu' + i + '-header';
            var d = document.getElementById(str);
            d.onclick();
        }
    }
}

また、dodyのonloadを変更します。

body onload="new Accordian('basic-accordion',5,'header_highlight');openTab();"

これで動くと思います。

id:finnapple

ありがとうございます。無事うまくいきました。

2008/02/18 18:41:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません