
宜しくお願いします。
下記に参考にしたURLを記します。
http://html-five.jp/364/
http://html-five.jp/demo/010/
2つ目にある参考サイトの中で教えて頂きたいのですが、現状はLIST1とLIST2を開いた状態でLIST1-2をクリックするとページの状態が変わらない状態になります。実現したいことはLIST1-2をクリックするとそれ以外のLISTを閉じたいのです。今回の例ではLIST2を閉じてLIST1-2が所属しているLIST1は開いたままにしたいのです。宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
2段目のリストはリンクに設定されているようですので、スクリプトで他を閉じても、リンクの結果ページ遷移してしまいますが・・・?
それとも、リンク先のページにも同じアコーディオンメニューを設置していて、そちらに結果を反映したいということなのかな。
ひとつの解決法としては、開/閉が排他的に行われる(開いているのは一つだけ)ようにするというのが考えられます。
動作自体は現状のままでよくて、リンクをクリックした時だけ他を閉じたいというのであれば、そのような処理だけを付け加えるという考えもあります。
ご質問は、多分、後者であると思いますので・・・
言葉の通り、他のリストを閉じるというイベントを付け加えれば良いのですが、もとのスクリプトが「閉じる」という動作を明示しておらずみなtoggleで処理をしていますので、「開いているものをクリックする」という処理にするほうが簡単かな。
開いているものには"open"のクラスを付与するようになっているらしいので、それが利用できそうなのですが、何だかおかしいですね。
クッキーから読み込んで開いた時にはクラス設定をしておらず、その後はtoggleで処理してしまっているので、クラス設定がすっと逆転したままになってしまうものができてしまうようで、残念ながら利用できそうもないですね。
というわけで、開閉状態も自前で判断することにして、以下を追加すれば、一応ご質問のような動作になると思います。
(インデントは全角スペースにしてあります)
$(".accordion ul a").click(function(){
var lis = $(".accordion>li");
var idx = lis.index($(this).parent().parents("li:first"));
lis.each(function(i){
if(i != idx && $(this).children("ul:visible").length) $(this).children("p").click();
});
});
付けたしなので必ずしも効率的ではありませんし、クラス設定のこともあるので、全体を整理し直した方が適切なコードになると思います。
fujillin様
ご回答頂きましてどうもありがとうございます。
また、こちらの質問が誤解を招く表現がありましたが、正しく意図を解釈して頂きまして感謝致します。
ご教示頂いた方法で無事に解決致しました。
しっかりと学習致します。
また、機会がございましたらどうぞ宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- 邦楽 ネガティブな精神状態をポシティブな精神状態に変えてくれて勇気や希望や元気を与えてくれる曲 7 2022/05/24 12:30
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- 会計ソフト・業務用ソフト ExcelのList & List & List & Listを作りたい 1 2023/08/20 22:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「隣の芝生は青く見える」現象...
-
恋愛
-
そんなにお金がなくても年に1度...
-
小学4年の頃、好きな同級生にス...
-
ページ遷移時にアコーディオン...
-
共通で使う関数を集めたクラス...
-
重複エラーを解決するには
-
スペイン語で「少人数指導」は...
-
dllと同じプロジェクトにする方法
-
エクセルVBAでのwitheventsにつ...
-
Javaの継承についてです。 この...
-
フレームとウィンドウの違いに...
-
成人式の後中3のクラスで集まろ...
-
ネスカフェ エクセラ と UCCク...
-
JDBCで複数のクラスファイルを...
-
サーブレットを始めようとした...
-
tomcat上でのpropertiesファイ...
-
JavaからSQLサーバのViewにアク...
-
同じクラスにならない確率を教...
-
下記の問合せを行うクエリを、P...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
3年間同じクラスになる確率
-
どこからも呼ばれていない無意...
-
共通で使う関数を集めたクラス...
-
ページ遷移時にアコーディオン...
-
同じパッケージ、クラス名が含...
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
EclipseでJSPのコンパイルエラー
-
コンボボックスのマウスホイー...
-
Cstring(日本語含む)をcharに...
-
dllと同じプロジェクトにする方法
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
重複エラーを解決するには
-
string formatについて
-
UMLのクラス図はmain()も含むん...
おすすめ情報