- ベストアンサー
jQueryのアコーディオンメニューで開いたメニューをマウスを外しても開いたままにする方法
- プログラム無知の者です。jQueryのアコーディオンメニューで開いたメニューをマウスを外しても開いたままにしたいのですが、どこをいじればいいかわかりません。
- 初歩的な質問で申し訳ないですが、どうぞよろしくご指導お願いします。
- プログラム無知の者がjQueryのアコーディオンメニューで開いたメニューをマウスを外しても開いたままにする方法がわかりません。ご指導お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No2です。 >閉じるときはクリックでできたら…と考えていたのですが… HTMLソースがNo2で質問した構成だと仮定して・・・ クリックしたらトグル(開いていたら閉じる、閉じていたら開く)となるようにすれば、ご希望の動作になるとは思います。 (個人的な感想では、必ずしも使い勝手がよいとは思えません。) もとのスクリプトに不審な点が多いので、最小限の範囲で修正させていただきました。 (孫要素以下があった場合、クリックしていなければ(自動的には)閉じません。=次に開いた時に、元の状態を保持している。) var j$ = jQuery; j$(function(){ j$(".acc").each(function(){ j$("li > a").each(function(index){ if(index > 0) j$(this).next("ul").hide(); j$(this).mouseover(function(){ j$(this).next("ul").show('normal'); }); j$(this).click(function(){ j$(this).next("ul").toggle("normal"); return false; }); }); }); });
その他の回答 (2)
- fujillin
- ベストアンサー率61% (1594/2576)
HTMLもCSSもないのでさっぱりわからないのですが、もしかしてこれ(↓)?? http://triplexxx.jp/archives/150 >マウスを外しても開いたままにしたいのですが、 閉じる命令のところをはずしてしまえばできますけれど、そうすると閉じなくなっちゃうけどいいのかな? $this.mouseover~~ のところを $this.mouseover(function(){ j$(this).next().show('normal'); //parent().siblings().children("ul:visible").hide('normal'); return false; });
補足
その通りでございます。 質問の仕方も下手ですみません…。htmlとcssも必要なのですね。 <閉じる命令のところをはずしてしまえばできますけれど、そうすると閉じなくなっちゃうけどいいのかな? 閉じるときはクリックでできたら…と考えていたのですが…
- yyr446
- ベストアンサー率65% (870/1330)
そもそも、自動的に開いたり閉じたりさせたいがためにあるのが アコーディオンのロジック、開きっぱなしでよいなら、 アコーディオンのロジックを使わなくてよい。
お礼
そうなんですね、かしこまりました。 ありがとうございました。
お礼
ご親切に教えていただきありがとうございました。 急にすぐ取り組めない状況になってしまいましたので、後日実践してみます。 これを機に学んでいこうとおもいます。 本当にありがとうございました。