次にコードを弄りたいのですが、詰まって困っています。
このコードは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()
});
jsFiddle で、ちょっと試したのが↓です。
http://jsfiddle.net/a_kuma3/tFBtc/
質問で書かれているような動作をしてると思うのですけれど、HTML の部分の書き方が、そちらで想定しているものと違う?
# id=accordion の部分は、端折ってます