私はJavascriptとJQueryを知り始めたばかりで、これを理解することはできません。これにはもっと短い方法がありますか?
$(".toggle").click(function(){
$(this).parent().toggleClass("collapsed");
$(this).parent().children().toggleClass("collapsed");
$(this).parent().next(".abcContent").toggle(0);
結局、動作させてよかったのですが、確かにこれは正しく行われていません...子(つまりボタン)を含む親クラス(abcTitle)を切り替えたいと思います。
<div class="abcTitle">
<div class="abcButton toggle"></div>
<h4 class=toggle>Title</h4><div class="sortable"></div>
</div>
<div class="abcContent">Content</div>
私を啓発してくれてありがとう!
明確にするために、ここにいくつかの関連するCSSがあります
.abcButton {
background-image:url(minus.png);
}
.abcButton.collapsed {
background-image:url(plus.png);
}
.abcTitle {
border-top-left-radius:14px;
}
.abcTitle.collapsed {
border-bottom-left-radius:14px;
}
したがって、基本的にabcButtonまたはH4のいずれかをクリックすると、abcButtonとabcTitleの両方にクラス.collapsedが追加されているときに、abcContentの折りたたみがトリガーされることになっています。
(ところで、除外する方法を理解できれば
<div class="sortable"></div>
クリック関数から、abcButtonとh4を分離する必要なしに、abcTitleをクリックハンドラーにすることができます)