私はウェブアコーディオンのようなものを作成しようとしています。
視覚的な例:
[TITLE DIV 1]
[CONTENT DIV 1]
[TITLE DIV 2]
[CONTENT DIV 2]
[TITLE DIV 3]
[CONTENT DIV 3]
それぞれの「TitleDiv」をクリックして「ContentDiv」を切り替えられるようにしたい(jquery関数toggle())。
以下を試しましたが、うまくいきません。
HTML:
<div class="topSeparator"></div>
<div class="titleDiv">
<h1>Title 1</h1>
</div>
<div class="bottomSeparator"></div>
<div class="contentDiv"><h2>Content 1</h2></div>
<div class="topSeparator"></div>
<div class="titleDiv">
<h1>Title 2</h1>
</div>
<div class="bottomSeparator"></div>
<div class="contentDiv"><h2>Content 2</h2></div>
JQUERY:
$('.titleDiv').click(function() {
$(this).next('.contentDiv').toggle();
});
私は自分の機能プロセスを次のように説明します。
1.1。クリックした要素を選択します。
1.1.1。 「contentDiv」という名前のクラスを持つ、クリックされた要素の次の兄弟を選択します。
1.1.1.1。関数toggle()をこの最後の要素に作用させます(「contentDiv」という名前のクラスを使用)。
私が間違っているか、何かが足りないようです。
。
jquery 1.8.3を含めています(正しく)
これはクラスの代わりにIDを使用する場合に機能します(私はそれらの使用を避けようとしています)
クリック関数内にアラートを配置しましたが、機能します(問題はその内部にあります)。
.nextAll()
および:first
を使用して、次のcontentDivを取得します
$(this).nextAll('.contentDiv:first').toggle();