人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQueryの質問です。
次にコードを弄りたいのですが、詰まって困っています。
このコードはclass=open_accordionのボタンを押すと非表示のアコーディオンが開き、それ以外の要素をクリックするとアコーディオンが閉じるという仕組みなっています。
この閉じるときのアクションを、class=open_accordion以外の要素をクッリクしたときではなくclass="closed_accordion"をクリックしたときだけ閉じるようにしたいです。

おそらく、elseの部分をifにかけるとかだと思うのですがプログラムが苦手なものなので、困っています。
よろしくお願いします。

$(function(){
$(".open_accordion").click(function(){
if($(this).is(".open_accordion")){
$("+ul",this).slideToggle("slow");
$(this).removeClass("open_accordion");
$(this).addClass("closed_accordion");
//アコーディオンの中身を加える
$("#accordion").addClass("accordion_content");

}else{
$("+ul",this).slideToggle("slow");
$(this).removeClass("closed_accordion");
$(this).addClass("open_accordion");
$("#accordion").removeClass("accordion_content");
}
}).next().hide()
});





●質問者: snoopy_japan
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

jsFiddle で、ちょっと試したのが↓です。
http://jsfiddle.net/a_kuma3/tFBtc/

質問で書かれているような動作をしてると思うのですけれど、HTML の部分の書き方が、そちらで想定しているものと違う?
# id=accordion の部分は、端折ってます


snoopy_japanさんのコメント
ありがとうございます、ただボタンで開け閉めをするようにしたかったものなので、 コンテンツの中に検索フォームも入れるので、、

a-kuma3さんのコメント
期待通りに動かないというサンプルを示してもらえれば、もっと具体的な回答ができるかもしれません。

snoopy_japanさんのコメント
すみません、自己解決しました。 ボタンの開け閉めだったんでこれでいけました。。 すみません、、 $(function(){ $(".open_accordion").click(function(){ $("#menu:not(:animated)").show(); }); $(".closed_accordion").click(function(){ $("#menu:not(:animated)").hide(); }); });
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ