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()
});



回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/03/02 04:02:10
  • 終了:2013/03/03 03:58:15

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4439ベストアンサー獲得回数18232013/03/02 09:35:41

ポイント300pt

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

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

他1件のコメントを見る
id:a-kuma3

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

2013/03/03 03:48:09
id:snoopy_japan

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

2013/03/03 03:57:18

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

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

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

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

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